ORACLE機能 SQL

[ORACLE] 数値文字列を正しくソートする

投稿日:2017年11月6日 更新日:

数値文字列を正しくソートする方法です。
以下のテーブルをサンプルとします。

【M_SHAIN】
IDNAME
1鈴木
2斎藤
3山下
10田川
11高橋
12上田

ID列はVARCHAR2(文字列型)とします。

サンプル

上記テーブルをID列で単純にORDER BYしてみます。

実行例
SQL> SELECT * FROM m_shain ORDER BY id; ID NAME ----- ---------- 1 鈴木 10 田川 11 高橋 12 上田 2 斎藤 3 山下

想定したソート順になりません。こういう場合は以下のようにします。

実行例
SQL> SELECT * FROM m_shain ORDER BY TO_NUMBER(id); ID NAME ----- ---------- 1 鈴木 2 斎藤 3 山下 10 田川 11 高橋 12 上田

想定した結果になりました。(^^♪

解説

  • 数値文字列でソートする場合は、TO_NUMBER関数で数値型にしてソートを行います。
  • MAXやMINを行う時も同様に、TO_NUMBERを使用します。

スポンサーリンク

スポンサーリンク

-ORACLE機能, SQL

執筆者:



comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

スポンサーリンク