「Javaソート豆知識」の編集履歴(バックアップ)一覧はこちら
「Javaソート豆知識」(2008/03/21 (金) 16:40:39) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
**Javaソート豆知識
投稿者: 狩野衛
日付: 2007-09-26 23:57
下記五島さんの過去メールを抜粋
----
お疲れ様です、五島です。
こっちはその2です。
今度は少し難易度が上がります。その分、使用頻度も減ります。
いつも大変お世話になっております。
eIT五島です。
使い慣れると意外と手軽なJavaソート。
昔は自分でソートアルゴリズム書いてましたよ。
(大学で習った講義の中で社会に出てから、一番役に立ったのはアルゴリズムだな~。まともに聞いてなかったけど)
ま、そんなJavaソートですが、漢字を含んだ文字列は文字コード順、
オラクルSQLのORDERBY句によるソートは音読み順となってソートが行われるようです。
例:文字配列 "0","世","中\","1" があった場合、
・オラクルのORDERBY句
"0","1","世","中\"
・javaソート
"0","1","中\","世"
となってしまいます。
これは文字コードソートの仕様だそうで、回避方針は調べた限り見つかりませんでした。
(ちなみに↑の例にてエクセル2003でデータの並び替えを行った場合Javaソートと同じ結果となりました)
漢字のソートを行いたい場合、SQLのソートを利用する
又は、文字コード順によるソートとなる事を事前に確認することが必要なようです。
ちなみに、ソートが食い違うのは漢字のみで英数や平仮名カタカナのソートは文字コードの関係上、なんとかなるかもしれません。(一応正規表現とほぼ同じ順序で並んでるので)
参考サイト
http://www.asahi-net.or.jp/~DP8T-ASM/java/tips/I18NStringCollation.html
http://otndnld.oracle.co.jp/products/database/oracle10g/application_development/pdf/TWP_Sorting_10gR1.pdf
http://otndnld.oracle.co.jp/products/database/oracle10g/application_development/pdf/BWP_Power_of_Globalization_Technology_10gR2.pdf
以上、情報共有でした。
客先からよく来るんですよね、この要望。
ソートを行うときSQLだとおっそいから、DBアクセスしないようにしてくれ。とかそんなんが。
その場合、文字コード順になりますよ。と一言、釘を刺しておきましょう。
----
**Javaソート豆知識
投稿者: K.M
日付: 2007-09-26 23:57
下記Gさんの過去メールを抜粋
----
お疲れ様です、Gです。
こっちはその2です。
今度は少し難易度が上がります。その分、使用頻度も減ります。
いつも大変お世話になっております。
Gです。
使い慣れると意外と手軽なJavaソート。
昔は自分でソートアルゴリズム書いてましたよ。
(大学で習った講義の中で社会に出てから、一番役に立ったのはアルゴリズムだな~。まともに聞いてなかったけど)
ま、そんなJavaソートですが、漢字を含んだ文字列は文字コード順、
オラクルSQLのORDERBY句によるソートは音読み順となってソートが行われるようです。
例:文字配列 "0","世","中\","1" があった場合、
・オラクルのORDERBY句
"0","1","世","中\"
・javaソート
"0","1","中\","世"
となってしまいます。
これは文字コードソートの仕様だそうで、回避方針は調べた限り見つかりませんでした。
(ちなみに↑の例にてエクセル2003でデータの並び替えを行った場合Javaソートと同じ結果となりました)
漢字のソートを行いたい場合、SQLのソートを利用する
又は、文字コード順によるソートとなる事を事前に確認することが必要なようです。
ちなみに、ソートが食い違うのは漢字のみで英数や平仮名カタカナのソートは文字コードの関係上、なんとかなるかもしれません。
(一応正規表現とほぼ同じ順序で並んでるので)
参考サイト
http://www.asahi-net.or.jp/~DP8T-ASM/java/tips/I18NStringCollation.html
http://otndnld.oracle.co.jp/products/database/oracle10g/application_development/pdf/TWP_Sorting_10gR1.pdf
http://otndnld.oracle.co.jp/products/database/oracle10g/application_development/pdf/BWP_Power_of_Globalization_Technology_10gR2.pdf
以上、情報共有でした。
客先からよく来るんですよね、この要望。
ソートを行うときSQLだとおっそいから、DBアクセスしないようにしてくれ。とかそんなんが。
その場合、文字コード順になりますよ。と一言、釘を刺しておきましょう。
----
表示オプション
横に並べて表示:
変化行の前後のみ表示: