小编Tad*_*iak的帖子

PostgreSQL 的“collat​​es”中的“-x-icu”是什么意思?

我有这个查询:

SELECT * FROM table ORDER BY label ASC;
Run Code Online (Sandbox Code Playgroud)

由于标签不是英文的,它们没有按正确的顺序排序(以“ö”开头的标签不在底部/末尾)。

因此,我尝试:

SELECT * FROM table ORDER BY label COLLATE "sv-SE" ASC;
SELECT * FROM table ORDER BY label COLLATE "sv_SE" ASC;
Run Code Online (Sandbox Code Playgroud)

这些给出了关于那些不存在的排序规则的错误,这让我感到困惑。

经过一番搜索,我想出了这样做:

SELECT * FROM pg_collation;
Run Code Online (Sandbox Code Playgroud)

这表明它应该是:

sv-SE-x-icu
Run Code Online (Sandbox Code Playgroud)

当我使用该标识符时它起作用了,但是“-x-icu”的东西有什么用?那是怎么回事?我讨厌他们总是不得不弄乱标准的语言环境标识符,所以你永远不能只依赖标准的“language_location”格式。

postgresql collation unicode international-components-unicode

2
推荐指数
1
解决办法
411
查看次数