現在ログインしていません。
新規アカウント作成
ログイン

SQL ServerのWHEREで大文字と小文字を区別しない

SQL Serverでは、SELECT * FROM T_TEST WHERE name = 'test' のようなSQL文で、nameが小文字の test にのみ合致するのか、それともTESTやTest,tEstにも合致するのかを照合順序で変えられます。

通常、照合順序はデータベース単位やテーブルの列単位で設定しますが、COLLATEを使ってSQL文内で照合順序を指定することもできます。

次のSQLは大文字と小文字を区別しません。

SELECT * FROM T_TEST WHERE name = 'test' COLLATE Japanese_XJIS_140_CI_AS_KS_WS
■リスト1:大文字と小文字を区別しないWHERE

SQL Serverのバージョンがあがると照合順序も新しいものが追加されるので自分のSQL Serverにあったものを選択してください。

照合順序を少し変えるとひらがな・カタカナの区別や、全角・半角の区別も制御できます。照合順序は世界各国に対応してたくさん用意されており、SQL Azureで使用できる日本語用の照合順序だけでも206個あります。下記の表はほんの抜粋です。

照合順序
照合順序 大文字・小文字 ひらがな・カタカナ 全角・半角
Japanese_XJIS_140_CI_AS 区別しない 区別しない 区別しない
Japanese_XJIS_140_CI_AS_KS 区別しない 区別する 区別しない
Japanese_XJIS_140_CI_AS_KS_WS 区別しない 区別する 区別する