SQL Server の照合順序

SQL Server の照合順序の説明がよくわからなかったので、少し調べてみました。

1.文字コード部分

分類すると以下の 5 種類で、なぜ、そんなにあるのかというと、互換性のためだということのようです。したがって、SQL Server 2008 だと、Japanese_XJIS_100 を選択すればいいし、SQL Server 2005 でも動作させたいというのであれは、Japanese_90 を選択すればいいということのようです。Japanese_Unicode は、名前的には使用したらいいように見えるのですが、過去のNT 時代のものなので使用しない方がいいようです。

Japanese_XJIS_100SQL Server 2008)

Japanese_Bushu_Kakusu_100 (SQL Server 2008)

Japanese_90 (SQL Server 2005)

Japanese (SQL Server 2000)

Japanese_Unicode (SQL Server 7.0)

 

2.サフックス部分

BIN 系統と CX_AX 系統があります。

BIN 系統を使用する場合は、BIN2 では完全なコード ポイント比較を利用できるので、SQL Server 2005 以降のみを使用するのであれば、BIN2 を使用し、2000以前のものを使用する場合は、BIN を使用します。パフォーマンスを考慮する場合は、BIN系統を使用するのがいいようです。Unicode データに対して Latin_1_General_BIN と Japanese_BIN を使用した場合、並べ替え結果はどちらも同じになります。照合順序に Japanese が使用できない海外のホスティングサービスを使用しても、ふりがなのソート等がうまくできない等の問題は残りますが、日本語については問題なく使用することができます。

CX_AX 系統は、以下のように、照合に大文字、小文字等を区分するかしないかのサフィックスです。Iが区別しない、Sが区別するで、C、A、K、Wの順になっています。K、Wは、区分する場合だけ表示するようになります。細かな点は、どの文字コードを使用するかによって違ってきますので、ふりがなの検索やソートで使う場合は、下のブログを参考にして、実際に試して見るのがいいようです。

C:大文字、小文字
A:アクセント
K:ひらがな、かたかな
W:半角、全角

参考: SQL Server 開発チームブログ

http://blogs.msdn.com/sqljapan/archive/2007/04/20/2203692.aspx

http://blogs.msdn.com/sqljapan/archive/2008/06/16/japanese-japanese-xjis-100-japanese-bushu-kakusu-100.aspx