- PR -

DB2 でのデータベース作成におけるソート順

1
投稿者投稿内容
おおた
@ITフェロー
会議室デビュー日: 2001/07/27
投稿数: 5
お住まい・勤務地: 豊中市
投稿日時: 2003-10-14 23:41
DB2 マイスター養成講座、毎回楽しみにしています。
少し前の話ですが、連載二回目でデータベース作成時にソート順を指定する記述があったかと思います。
連載では、通常は SYSTEM を使う、という指摘になっていたかと思いますが、これは実は IDENTITY の方がよいのではないでしょうか?
SYSTEM は辞書式順序でソートする仕様になっていますが、2 バイト圏の文字のことは考慮されていないため、全角のひらがなやカタカナなどの文字で直感的でない順序になった記憶があります。
バイト単位で比較する IDENTITY の方が日本語では望ましいような気もするのですが、いかがでしょうか。


[ メッセージ編集済み 編集者: おおた 編集日時 2003-10-14 23:46 ]

[ メッセージ編集済み 編集者: おおた 編集日時 2003-10-14 23:47 ]
こば
会議室デビュー日: 2003/10/19
投稿数: 1
投稿日時: 2003-10-19 22:56
おおたさん、

ソート順ですが、データベースのコードセットによって結果が違います。IBM-eucJPを使うと英文字も日本語(ひらがな、カタカナ)も辞書式順序でソートされます。IBM-943の場合は、おおたさんのおっしゃるように直感的な順序ではありません。

Linuxの場合、デフォルトでIBM-eucJPが使われるため問題ありません。

IBM-eucJP[IDENTITY]:
・日本語(ひらがな、カタカナ)
-> 辞書式順序
・英文字
-> バイト単位

IBM-eucJP[SYSTEM]:
・日本語(ひらがな、カタカナ)
-> 辞書式順序
・英文字
-> 辞書式順序

IBM-943(SJIS)[IDENTITY]:
・日本語(ひらがな、カタカナ)
-> 辞書式順序
・英文字
-> バイト単位

IBM-943(SJIS)[SYSTEM]:
・日本語(ひらがな、カタカナ)
-> 無秩序
・英文字
-> 辞書式順序

UTF-8[IDENTITY]:
・日本語(ひらがな、カタカナ)
-> 辞書式順序
・英文字
-> バイト単位

UTF-8[SYSTEM]:
・日本語(ひらがな、カタカナ)
-> 辞書式順序
・英文字
-> バイト単位

おおた
@ITフェロー
会議室デビュー日: 2001/07/27
投稿数: 5
お住まい・勤務地: 豊中市
投稿日時: 2003-10-19 23:59
こばさん

なるほど、確かに Linux の場合であればデフォルトの文字コードが eucJP になるのでその場合は SYSTEM でもとりあえず問題ないのは確かなようです。

データベースの文字コードセットとして UTF-8 や Shift_JIS を使う場合だけ注意すればよさそうですね。
1

スキルアップ/キャリアアップ(JOB@IT)