Postgresql

在 Postgres 上進行不區分重音比較的排序規則?

  • September 13, 2021

在 PG 13 文件中,有幾個用於特殊目的的 ICU 歸類範例。還提到存在允許創建排序規則以忽略重音符號的 ICU 語言環境,並且可以在https://github.com/unicode-org/cldr/blob/master/common/bcp47/collat​​ion.xml上找到它們

但是,在閱讀了該文件之後,我仍然不清楚應該使用什麼語言環境來創建 ICU 排序規則,以便在西班牙語中進行不區分重音的比較。

這種 ICU 語言環境的名稱是什麼?有沒有 ICU 西班牙語排序規則的列表?

這將區分大小寫,但對西班牙的重音不敏感區域設置適用於最新版本的 ICU:

CREATE COLLATION spanish_noaccent (
  PROVIDER = 'icu',
  LOCALE = 'es-ES-u-ks-level1-kc',
  DETERMINISTIC = FALSE
);

SELECT 'Olé' = 'Ole' COLLATE spanish_noaccent;

?column? 
══════════
t
(1 row)

SELECT 'Olé' = 'ole' COLLATE spanish_noaccent;

?column? 
══════════
f
(1 row)

ks-level1表示“不區分大小寫和重音”,並kc添加區分大小寫。

有關更多資訊,請參閱我的部落格文章

引用自:https://dba.stackexchange.com/questions/299477