日本語照合順序 Japanese と Japanese_XJIS_100、Japanese_Bushu_Kakusu_100 の比較

はじめまして、マイクロソフト保瀬です。SQL Server 開発部門でテスターをしております。日本のSQL Serverチームがブログを開設してから1年以上が経ちますが、遅れ馳せながら今回はじめて書きます。これを機にできる限り、継続的かつ頻繁に情報発信できればと思います。よろしくお願いします。 初回は、トピックとしてあまり取り上げられないSQLの照合順序についていろいろと見ていこうと思います。CTP版やRC版等をお試しになっている方はお気づきと思いますが、新たに2つ照合順序が追加されています。 SQL Server に新規に照合順序が追加されることなった背景に Windows Server 2008 と足並みをそろえるという目的がありました。Windows Vistaを既にご使用の方は、お気付きと思いますが、コントロール パネルの「地域と言語のオプション」のところで並べ替えの設定ができます(下図参照)。ここで「XJIS」または「部首/画数」の何れかを指定できるようになっています。今回 SQL Server に新たに追加された日本語の照合順序名である Japanese_XJIS_100 及び Japanese_Bushu_Kakusu_100 はWindows Vista と Windows Server 2008 で指定可能となった「並べ替え」の内容に沿うような形で追加されています。   Japanese_XJIS_100 の照合順序で何が変わったか、特に以前からあるJapanese 照合順序などと比較した場合の文字の並び替えなど動作について見ていきましょう。まずは「論より証拠」で、実際にそれぞれJapanese_XJIS_100とJapaneseの照合順序でソートした場合の結果を比べていくことにします。尚、今回は一文字単位の比較としました。例えば、「は」と「ば」を比較するのであれば 、where 句の内容として “where N’は’ < N’ば’ collate Japanese_XJIS_100_CI_AS” といった具合で比較していくことにしました。2文字以上の文字列を含む比較となると、内部エンジンの文字列ソートについて触れておく必要が出てくるので、それはまた別の機会にしておきます。 比較内容として、今回は平仮名・片仮名の文字(単一文字のみ)を使って比較してみました。全ての五十音文字を使用するとかなりのテストパターンになるので、今回は清音、濁音、半濁音、平仮名、片仮名等の観点から、Japanese と Japanese_XJIS_100/Japanese_Bushu_Kakusu_100 の各照合順序の比較結果の違い検証してみました。 下記表1にグループ分けされた五十音文字を示します: 表1(参考:JIS X 4061「日本語文字列照合順番」) グループ グループ文字 清音 大文字(L)・小文字(S) 平仮名 (H)/ 片仮名…

2