スキップしてメイン コンテンツに移動

(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だとちゃんと認識している。

コメント

このブログの人気の投稿

SQLでは文字列の前に「N」が必要だ

SQLServerのテーブルにテキストを登録したら一部の文字が文字化けした。環境依存文字だと化けるみたい。

コンボボックスのDataSourceプロパティの使い方

コンボボックスに表示するデータを設定するのを簡単にする工夫をまとめます。コンボボックスのDataSourceプロパティを上手に使いましょう。(2017/8/30追記)