Web
Analytics

社畜ゲートウェイ

京成・京急を中心に取り上げる阪急ファンのブログです。日本一遅い速報を届けます。

MENU

【スポンサーリンク】

【Oracle】ORDER BYを使った並び替え(昇順・降順のソート)

【スポンサーリンク】

OracleのORDER BYを使った並び替えです。

ORDER BYを使った並び替え

OracleでORDER BYを使用した並び替えは2通りあります。Oracle以外でも使用出来ます。

  • 昇順(ASC)並び替え
  • 降順(DESC)並び替え

昇順は小さい順に並びます。例えば、1から10までの数値が存在する場合、昇順に並び替えると、1,2,3....10という順番に並びます。

降順は昇順の逆で、大きい順に並びます。1から10までの数値が存在する場合、降順に並び替えると、10,9,8…1という順番に並びます。

 

昇順並び替え

昇順で並び替える場合、ORDER BYを使用します。明示的に記述をするのであれば、ASCを使用します。次のSQLはTBL_HOGEテーブルのCOL_1カラムを昇順に並び替える例文です。COL_1はTBL_HOGEテーブルの一番先頭のカラムとします。

SELECT *
  FROM TBL_HOGE
 ORDER BY COL_1;

--ASCあり
SELECT *
  FROM TBL_HOGE
 ORDER BY COL_1 ASC;

--カラム番号指定
SELECT *
  FROM TBL_HOGE
 ORDER BY 1;

ASCは書かなくても問題ありません。また、一番下の「ORDER BY 1」という記述ですが、これは「1番目のカラム」という意味です。

実際に試してみましょう。使用するテストデータはこちらに用意しています。

www.stellacreate.com

今回は果物テーブル(TAB_PRODUCT_FRUIT)を使用します。果物テーブルのCODEで並び替えてみます。現状はこの状態です。

f:id:neko_britannia:20201018215016j:plain

これをCODEの昇順に並び替えます。

SELECT CODE
      ,NAME
  FROM TAB_PRODUCT_FRUIT
ORDER BY CODE;

実行結果を見てみます。

f:id:neko_britannia:20201018215242j:plain

ちゃんとCODEの昇順で並び替えられています。

 

また、ORDER BYでは複数カラムを指定して並び替えることも出来ます。

SELECT *
  FROM TBL_HOGE
 ORDER BY COL_1,COL_2;

こちらも実行してみます。まずは現状を確認します。

f:id:neko_britannia:20201018215444j:plain

見事にバラバラです。FRUIT_COLOR_CD、CODEの順に並び替えてみましょう。

SELECT CODE
      ,NAME
	  ,FRUIT_COLOR_CD
  FROM TAB_PRODUCT_FRUIT
ORDER BY FRUIT_COLOR_CD
        ,CODE;

f:id:neko_britannia:20201018215658j:plain

ちゃんと並び変わっていますね。

 

降順並び替え

降順で並び替える場合、ORDER BYで並び替えるカラムの後にDESCを明示的に記述します。

SELECT *
  FROM TBL_HOGE
 ORDER BY COL_1 DESC;

--カラム番号指定
SELECT *
  FROM TBL_HOGE
 ORDER BY 1 DESC;

実際に試してみましょう。先ほど使用した果物テーブル(TAB_PRODUCT_FRUIT)のCODEを降順に並び替えます。

f:id:neko_britannia:20201018215016j:plain

SELECT CODE
      ,NAME
  FROM TAB_PRODUCT_FRUIT
ORDER BY CODE DESC;

実行してみましょう。

f:id:neko_britannia:20201018220313j:plain

CODEが降順に並び変わりました。

 

降順で複数カラムを並び替える場合、並び替えたいカラムの後にそれぞれDESCを明記する必要があります。

SELECT *
  FROM TBL_HOGE
 ORDER BY COL_1 DESC
          COL_2 DESC;

実際に試してみます。果物テーブル(TAB_PRODUCT_FRUIT)のFRUIT_COLOR_CD、CODEを降順に並び替えてみましょう。

SELECT CODE
      ,NAME
      ,FRUIT_COLOR_CD
  FROM TAB_PRODUCT_FRUIT
ORDER BY FRUIT_COLOR_CD DESC
        ,CODE DESC;

f:id:neko_britannia:20201018220901j:plain

ちなみに、ORDER BY句の全てにDESCを付けない場合、DESCを付けていないカラムは昇順で並び替えられます。

f:id:neko_britannia:20201018221022j:plain

TAB_PRODUCT_FRUITは降順で並んでいますが、CODEは昇順で並んでいます。

 

参考サイト

docs.oracle.com