燈明ブログ

現状は小池啓仁の応援ブログ

SQLServerのWhere条件で全角と半角で同じになる!

SQLServer2000と2005で確認したのですが、半角「,」と全角「,」や半角「0」と全角「0」等が、全角半角関係なしに同じにヒットする。
コレ、SQLServer2000と2005でのデフォルトの設定みたいで、これを区別するには、以下のように「COLLATE句」を指定します。

Select *
From tblTest
Where name = 'テスト1' COLLATE Japanese_CS_AS_KS_WS


CI
大文字、小文字を区別しない。全角アルファベットの大文字、小文字も区別しない

CS
大文字、小文字を区別する。全角アルファベットの大文字、小文字も区別する

AI
アクセント、濁音、破裂音を区別しない。

AS
アクセント、濁音、破裂音を区別する。

KS
ひらがなとカタカナを区別する。半角でも区別する

WS
文字幅を区別する。つまり全角、半角を区別する。

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=9303&forum=7

そういえば、csvEXCELに読み込ませると、やはり全角のゼロが半角のゼロに自動変換するね。
余計なことするなって言いたいよ・・・。