エキサイトしばたにえんです。 早速ですが、
WITH hogefuga_table AS ( SELECT 'hogefuga' AS word ) SELECT * FROM hogefuga_table WHERE word = 'HOGEFUGA';
こちらhogefuga
がヒットされてしまいます。
WHERE句の大文字小文字を判別してくれません。
SQLServerのWHERE句で大文字小文字を判別するためにcollateが使えます。
WITH hogefuga_table AS ( SELECT 'hogefuga' AS word ) SELECT * FROM hogefuga_table WHERE word = 'HOGEFUGA' COLLATE Japanese_CS_AS_KS_WS;
とすればWHERE句の大文字小文字を判別してくれるようになり、ヒットされることはありません。
COLLATEには他にも種類があります。 例えば、「ぽ」、「ぼ」、「ボ」、「ポ」の判別を「したくない」場合
WITH hogefuga_table AS ( SELECT 'ボボぼーボボーボぽ' AS word ) SELECT * FROM hogefuga_table WHERE word = 'ぽぼポーぽぽーぽボ' COLLATE Japanese_CI_AI;
とするとボボぼーボボーボぽ
ヒットしてくれるようになります。
他にもCOLLATEには種類があるので必要に応じて使い分けるといいかもしれません。