文字列をORDER BYでソートしたとき、文字コード順でソートされると認識しているのですが、データに半角文字(1バイトコード)と全角文字(2バイトコード)が混在しているとき、想定と異なる結果が得られました。
以下のようなSQLを実行しました。
select 列名,ascii(列名)
from テーブル名
where ROWNUM <= 100
order by 列名;
このとき、以下のような結果が得られました(文字コードはSJISです)。
列名 ascii(列名)
(カ) 40
東京 37772
オオツ 181
文字コード順に並んでいるのであれば(カ)→オオツ→東京と並ぶのかと思っていましたが、そうなっていません。
ORDER BYの条件をascii(列名)に変更すると、想定通り(カ)→オオツ→東京の順番になります。
何故、ORDER BYの条件を列名にすると(カ)→東京→オオツのような並びになってしまうのでしょうか。
よろしくお願いします。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。