- PR -

日本語かなの辞書順のソートについて

1
投稿者投稿内容
ozawasam
会議室デビュー日: 2006/01/23
投稿数: 7
投稿日時: 2006-01-31 18:20
DB:PostgreSQL 8.1.0
OS:Fedora Core 3
を利用しています。

日本語かなを辞書順ソートが出来ません。

辞書順では、
--------------
こじま
ごとう
こばやし
--------------

ですが、PostgreSQLでソートすると
--------------
こじま
こばやし
ごとう
--------------
になってしまいます。

これはどうしようもないのでしょうか?

基本的な質問だと思いますがよろしくお願いします。
おっきー
大ベテラン
会議室デビュー日: 2003/05/01
投稿数: 104
投稿日時: 2006-01-31 18:59
一般的なデータベースシステムはそのようなソートはできないので、
プログラムでなんとかするしかないのでは?

テーブルにもうひとつ項目を用意して

「こじま」 なら、こしま
「こばやし」なら、こはやし
「ごとう」なら、ことう

などを格納して、この項目を元にソートするとか。

[ メッセージ編集済み 編集者: おっきー 編集日時 2006-01-31 19:06 ]
つばさ
ベテラン
会議室デビュー日: 2005/02/05
投稿数: 54
投稿日時: 2006-01-31 23:18
Oracleですと
NLSSORT(COL_XXX ,'NLS_SORT=JAPANESE')
で辞書順でソートできるんですが、PostgreSQLではどうなんでしょう。
何かステキな関数はないんでしょうかね。
おっきー
大ベテラン
会議室デビュー日: 2003/05/01
投稿数: 104
投稿日時: 2006-02-01 16:03
Oracle には、NLSSORT関数っていうのがあったんですね。
初めて知りました。

PostgreSQL の場合は、関数を自作するしかなさそうですね。

ozawasam
会議室デビュー日: 2006/01/23
投稿数: 7
投稿日時: 2006-02-03 09:38
ご回答ありがとうございました。

MS-ACCESSからの移植を考えていたのですが、標準ではないのですね。
Accessは辞書順になりますし、Oracleでも出来るようなので、
オープンソースの限界といったところでしょうか

自分で関数を作成して対応したいと思います。
1

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