[文字] 照合順序

2010年7月9日

 恥ずかしい話ですが、照合順序という言葉を最近知りました。きっかけは以下の記事。
  http://blogs.wankuma.com/ognac/archive/2010/06/04/189722.aspx

 ところで、SQLServerで、以下のような都道府県テーブルを作ってみました。

CREATE TABLE dbo.都道府県(
  県名1 varchar(10) NOT NULL,
  県名2 nvarchar(10) NOT NULL
)

 データは当然の如く以下。

県名1 県名2
北海道 北海道
青森県 青森県
岩手県 岩手県
宮城県 宮城県
秋田県 秋田県
山形県 山形県
福島県 福島県
…以下略

 このテーブルに、以下のような、県名1でソートするSELECT文を発行してみます。

SELECT * FROM test.dbo.都道府県
 Order by 県名1
 Collate Japanese_Bin

 結果は以下。ほぼ「あいうえお」順。「岩手」は"岩"が訓読みの"いわ"ではなく音読みの"ガン"でソートされていると思えば、完全に「あいうえお」順です。

県名1 県名2
愛知県 愛知県
愛媛県 愛媛県
茨城県 茨城県
岡山県 岡山県
沖縄県 沖縄県
岩手県 岩手県
岐阜県 岐阜県
…以下略

 では、次に、ソート列を県名1から県名2に変更してみます。 

SELECT * FROM test.dbo.都道府県
 Order by 県名2
 Collate Japanese_Bin

 県名1と県名2の内容は同じなので、結果は同じかと思いきや…

県名1県名2
三重県三重県
京都府京都府
佐賀県佐賀県
兵庫県兵庫県
北海道北海道
千葉県千葉県
和歌山県和歌山県
…以下略

 あーら不思議。なんかよくわからない順番になっちゃったー(棒
 同じデータをソートしているのになんでー(棒

 知らないとはまりそうです。上記のようなケースはほぼないでしょうが、「SQLではうまくソートするけど、VBでやるとうまくソートできない」とかはありそう。そしてなぜかわからず長時間はまる。ああ怖い。






カテゴリー: SQLServer, データベース

Follow comments via the RSS Feed | Leave a comment | Trackback URL

コメントを投稿する

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


«   »
 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org