• ベストアンサー

データベースの並び替え

VB+ACCESS2000です。 データの並び替えを昇順にしたいのですが,どうもデータがばらばらにならんでうまくいきません。 データの中身は全て、漢字で書いてあるんですけど、どうなんですかね。 ORDER BY 名前 ASC ってかいて、 データは 名前      渡辺      阿部      佐藤      中村   っていうふうにデータがバラバラに出てきます。漢字を使って並び替えをしたら、だめなのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#2497
noname#2497
回答No.1

漢字、特に人名でのソートはばらばらになりますね。 本当は並んでいるんですが、コード値の順番なので、読み順には並びません。 それに人名は同じ漢字でも読み方が違うことがありますから無理です。 ひらがな(カタカナ)の読みも登録して、並び替えはそれで行なう方法で行なう必要があると思います。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

コンピュターの基礎論を思い出して下さい。 漢字も数字も文字列の数字もビット1か0の並びで表されています。 2つのデータのそれぞれ先頭バイト(イメージ的には左端)の左端のビットから1ビットずつ比べていき、(A)0と0の場合は次ビットに勝負持ち越し、(B)0と1の場合は0の前者が勝ちで先、(c)1と0の場合は0のほう後者が勝ちで先、(D)先に比較するビットがなくなった(長さが短い)ときは、前者が勝ちになります。(昇順の時「勝ち」は早い順序に並ぶと言うこと。) 数字の場合意識しなくても良いのは、0、1、・・・9の順にコード(体系)を設定してくれているからです。JISでも何コードでもこの点は、ソウしなくては大混乱する。 また英数字と半角カナはその順序と同じになるようにコード化されています。ただカナの半濁点濁点の件は悩ましい が。 漢字はほぼ読みの順に並べてコンピュターコード化(ビット列に)されているが、通常、漢字は音訓の2種類以上の読み方があるため、名前は特に色々な読み方をするため、そのどちらか日本の人間の常識的苗字・名前の読み方のようにコンピュターでやれというのは無理なんです。(例 原 はら、わら、げん)そのため振り仮名をふるわけです。

関連するQ&A