SQL Server の照合順序
サポートされる照合順序:
Windows 照合順序:
Windows ロケールに基づくコードページ、並べ替え規則、比較規則が用いられる。
Unicode と非 Unicode データ型は同じように並べ替えられる。
バイナリ照合順序:
コードポイントに基づく。
Unicode と非 Unicode データ型は異なるコードポイントのため、異なった並び順になる。
SQL Server 照合順序:
6.5 以前並べ替え順。"SQL_" で始まる。非 Unicode データについて、Windows と互換性がない。
照合順序には名前とオプションとバージョンがある
名前:
Japanese_Unicode:
SQL Server 7.0 との互換性のためだけに残されている。
Japanese:
バージョンなし(80)、90 に対応
Japanese_XJIS:
バージョン 100 に対応。
(Japanese の 100 版)
Japanese_Bushu_Kakusu:
バージョン 100 に対応。
(部首画数順)
オプション:
CS(CaseSensitivity):
大文字と小文字を区別する。
区別しない場合は CI 。
AS(AccentSensitivity):
アクセントを区別する。
日本語の場合は清音と濁音・半濁音の区別。区別しない場合は AI 。
KS(KanatypeSensitive):
ひらがなとカタカナを区別する。
区別しない場合はオプションを指定しない。
WS(WidthSensitivity):
1 バイト文字と 2 バイト文字を区別する。(w と w 等)
区別しない場合はオプションを指定しない。
SC:
Supplementary Character(補助文字)を認識するかどうかを区別する。
文字数を返す LEN 等の動作に影響する。
区別しない場合はオプションを指定しない。
BIN:
バイナリ並べ替え順。SQL Server 2000 以前の古いバージョンとの互換目的。
(最初の一文字のみコードポイントで比較、以降はバイトごとに比較)
BIN2:
すべての文字をコードポイントで比較する。
バージョン:
記載なし(80):
SQL Server 2000
Unicode 2.0
90:
SQL Server 2005
Unicode 3.2
100:
SQL Server 2008
Unicode 5.0
参考:
MSDN Blogs
照合順序と Unicode のサポート
照合順序の種類
Windows 照合順序並べ替えスタイル
SQL Server 2012 で追加された照合順序で何ができるようになった? | SE の雑記