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

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

関連記事

ORACLE

[データディクショナリ] 表領域の情報を取得する

TABLESPACE(表領域)の情報を参照するには、 TABLESPACESデータディクショナリビューを参照します。 T ...
ORACLE

[ORACLE] ディレクトリを削除する

ディレクトリを作成するには、DROP DIRECTORY文を使用します。 構文 (ディレクトリを削除する) DROP D ...
ORACLE

[ORAエラー] ORA-00054: リソース・ビジー。NOWAITが指定されているか、タイムアウトしました

以下のように表示されます。 (日本語) ORA-00054: リソース・ビジー。NOWAITが指定されているか、タイムア ...
ORACLE

[ORAエラー] ORA-00904: 無効な識別子です

以下のように表示されます。 (日本語) ORA-00904: XXX: 無効な識別子です (英語) ORA-00904: ...
ORACLE

[ORAエラー] ORA-01756: 引用符付き文字列が正しく終了していません

以下のように表示されます。 (日本語) ORA-01756: 引用符付き文字列が正しく終了していません (英語) ORA ...

スポンサーリンク