[pgsql-jp: 35238] UNICODEデータベースの日本語並べ替えについて

Shuichi_Tamura @ njs.co.jp Shuichi_Tamura @ njs.co.jp
2005年 4月 13日 (水) 13:20:56 JST



送信者:   Shuichi Tamura/domnjs @ DOMNJS


NJSの田村と申します。
いつも参考にさせてもらっています。

以前に「Unicodeデータベースの日本語に対するorder byがおかしい」
(スレッド番号[pgsql-jp:35088])でマスダさんが同じ内容の質問を
されていましたが,同様の質問です。

単純に「あかさたな」でソートをかけると,以下のような結果になり
ます。

test=> SELECT * FROM testtable
test->  ORDER BY test;
 test
------
 な
 は
 ま
 あ
 か
 さ
 た
 わ
 や
 ら
(10 rows)

SJISやEUC_JPに変換すると正しくソートされます。

test=> SELECT * FROM testtable
test->  ORDER BY convert(test,'EUC_JP');
 test
------
 あ
 か
 さ
 た
 な
 は
 ま
 や
 ら
 わ
(10 rows)

ちなみに,それぞれの文字をUnicodeに置き換えた場合,以下のよう
になるので,正しくソートされても良いような気がするのですが・・・。
 あ(\u3042),か(\u304b),さ(\u3055),た(\u305f),な(\u306a)
 は(\u306f),ま(\u307e),や(\u3084),ら(\u3089),わ(\u308f)

何か認識違いなところがあるでしょうか?
皆様からの助言があればお願いします。

PostgreSQLのバージョンは7.4.6です。

よろしくお願いします。





pgsql-jp メーリングリストの案内