回答:
基本的に、文字列を並べ替えて比較する方法。
例:
比較する:
並べ替え:
特殊文字の同等
一部のSQL(SQL Server 2008+)
DECLARE @foo TABLE (bar varchar(2))
INSERT @foo VALUES ('z'), ('æ'), ('ø'), ('å'), ('ss'), ('ß'), ('a'), ('ä')
SELECT * FROM @foo ORDER BY bar COLLATE Finnish_Swedish_100_CI_AS
SELECT * FROM @foo ORDER BY bar COLLATE Norwegian_100_CI_AS
SELECT * FROM @foo ORDER BY bar COLLATE Latin1_General_100_CS_AS --german (western europe) and default
SELECT * FROM @foo ORDER BY bar COLLATE German_PhoneBook_100_CS_AS
「照合」は、おそらくetymology.comで最もよく定義されています。
14c後半、「まとめて比較する行為」
過去600年間、まったく変わっていません。「照合」とは、「まとめる」ことを意味し、それが本の順序であれ、年代順であれ、データベースであれ、すべて同じです。
コンピューターサイエンスにも当てはまるので、私たちが行っているのは、ストレージメカニズムを順序付けから分離することです。ASCII-beticalについて聞いたことがあるかもしれません。これは、ASCII文字のバイナリエンコードに基づく比較を指します。そのシステムでは、ストレージと照合は同じ2つです。ASCII標準化された「エンコード」がこれまでに変更された場合、「照合」(順序)も変更されます。
POSIXはLC_COLLATE
。しかし、Unicodeに移行すると、照合を標準化するためのコンソーシアム(ICU)が登場しました。
SQL仕様には、照合順序を提供する2つの拡張機能があります。
F690
:「照合のサポート:
含まれcollation name
、collation clause
、collation definition
とdrop collation
。
F692
:照合サポートの拡張、
スキーマの列に異なるデフォルトの照合を添付することを含みます。
基本的に、これらは、照合CREATE
およびDROP
照合、演算子とソートの指定、および列のデフォルトの定義を行う機能を提供します。
SQLが提供するチェックアウトの詳細については、
限定された例を貼り付けるのではなく、非常に広範囲にわたるPostgreSQLテストスイートがあります。少なくとも最初のリンクをチェックして探してください'Türkiye' COLLATE "tr-x-icu" ILIKE '%KI%' AS "false"
collate.icu.utf8.out
collate.linux.utf8.out
collate.out
おそらくチェックアウトする価値はありませんが、POSIXチェックを退屈にするために、完全を期すためにここに配置しました。