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

[ORACLE] 排他ロックを行う(for update nowait)

排他ロックをかけるには、for update または、for update nowaitを使います。 構文 排他ロックに ...
ORACLE

[ORAエラー] ORA-01789: 問合せブロックにある結果の列数が正しくありません

以下のように表示されます。 (日本語) ORA-01789: 問合せブロックにある結果の列数が正しくありません (英語) ...
ORACLE

[DBMSパッケージ] スケジューラジョブを作成する(DBMS_SCHEDULER.CREATE_JOB)

オラクルでは、スケジューラーを作成してプロシージャやexeなどのプログラムを自動実行することができます。 スケジューラー ...
ORACLE

[データディクショナリ] ユーザの情報を取得する

ユーザ(USER)の情報を参照するには、 USERSデータディクショナリビューを参照します。 USERSデータディクショ ...
ORACLE

[データディクショナリ] シーケンスの情報を取得する

SEQUENCE(順序)の情報を参照するには、 SEQUENCESデータディクショナリビューを参照します。 SEQUEN ...

スポンサーリンク