(SQL)「いわき」と「イワキ」がGroupByでも区別されない

SqlServerの照合順序でひらがなとカタカナを区別しないモードにしていると、GroupByでも区別されない。


SQLServerの照合順序を「Japanese_CI_AS」と設定して使っている。これはひらがなとカタカナを区別しないモードなので、「いわき」と「イワキ」が区別されない。

なので「where name = 'いわき'」で「いわき」と「イワキ」の両方が見つかるのは知っていたが、GroupByでも区別されないのを見て、ちょっとびっくり。

下図では「いわき」に統合されて2件としてカウントされている。


まあ、当たり前なのですけど。

これを区別しようとしたら、照合モードを「Japanese_CI_AS_KS」にするとよいらしい。

データベースの設定を変えられないときは、select文で指定する手もある。たとえば、以下のような感じ。

select
[個人_分類1] COLLATE Japanese_CI_AS_KS, count(*)
from mm40_d010_健診データ
group by
[個人_分類1] COLLATE Japanese_CI_AS_KS


うん、ちゃんと区別されました。

#ソースコードを飾ってくれるJSはすごいな。SQLだとちゃんと認識している。

コメント

このブログの人気の投稿

varchar をデータ型 numeric に変換中に、算術オーバーフロー エラーが発生しました。