エンジニアの将来って?

現在7年目のCOBOL→Java→C#エンジニアが、将来への考えや勉強のアウトプット、たまに腎臓について書くブログです

【SQL Server】昇順、降順のソートができるORDER BYについて解説します

こんにちは。たいら(@tairaengineer2)です。
この記事では、昇順、降順のソートができるORDER BYについて解説します。

スポンサーリンク

 

前提条件

この記事では、Microsoft SQL Server2017を使っています。
インストールの仕方は、下の記事をご参考ください。

www.tairax.com

ORDER BYとは

ORDER BYは、SELECTした結果のデータのソートをするときに使います。

SELECT - ORDER BY 句 (Transact-SQL)
適用対象: ○SQL Server ○Azure SQL Database ○Azure SQL Data Warehouse ○Parallel Data Warehouse

SQL Server でクエリによって返されるデータを並べ替えます。
この句は次の場合に使用します。

  • 指定した列リストでクエリの結果セットを並べ替え、必要に応じて、返される行を指定の範囲に制限する。 ORDER BY 句が指定されていない限り、結果セットとして返される行の順序は保証されません。
  • 順位付け関数の値が結果セットに適用される順序を決定する。

ORDER BY 句 (Transact-SQL) - SQL Server | Microsoft Docsから引用させて頂きました

ORDER BYの使い方

ORDER BYの基本的な使い方は以下の通りです。

SELECT *
  FROM 【テーブル】
  ORDER by 【ソートする列】 【昇順or降順を指定】

f:id:Tairax:20190924083439p:plain

【昇順or降順を指定】は、以下で指定できます。

昇順 ASC
降順 DESC

【昇順or降順を指定】をしなかった場合、昇順で表示されます。

では、次の章でORDER BYを実際に使ってみます。

ORDER BYを実際に使うサンプルデータ

ORDER BYを試すテーブルは、【House】テーブルです。
サンプルデータは以下の通りです。

f:id:Tairax:20190924084532p:plain

このデータを以下の条件でORDER BYして表示させます。

  1. idを降順
  2. nameを昇順
  3. ageを昇順(ASCを設定しない)

実行例1:idを降順

idを降順にするためのSQLは下記です。

SELECT *
  FROM [Sample].[dbo].[House]
  ORDER BY id DESC

実行した結果は下記です。

f:id:Tairax:20190924211608p:plain

idで降順になっていますね。

実行例2:nameを昇順

nameを昇順にするためのSQLは下記です。

SELECT *
  FROM [Sample].[dbo].[House]
  ORDER BY name ASC

実行した結果は下記です。

f:id:Tairax:20190924212010p:plain

日本語でソートした場合、

  1. 五十音順(ひらがな、カタカナ関係なし)
  2. 漢字

というルールのようですね。

実行例3:ageを昇順(ASCを設定しない)

ageをASCを設定しないで昇順にするためのSQLは下記です。

SELECT *
  FROM [Sample].[dbo].[House]
  ORDER BY age

実行した結果は下記です。

f:id:Tairax:20190924212521p:plain

昇順のASCを設定しなくても、ageの昇順になっていますね。

まとめ:ソートをするとき、ORDER BYを使ってみよう!

以上が昇順、降順のソートができるORDER BYの解説です。
まとめなので、もう1度振り返ってみます。

SELECT *
  FROM 【テーブル】
  ORDER by 【ソートする列】 【昇順or降順を指定】

f:id:Tairax:20190924083439p:plain

【昇順or降順を指定】は、以下で指定できます。

昇順 ASC
降順 DESC

あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ

 

他にもSQL Serverについて記事を書いています。
良ければこちらもご参考ください。

【SQL Server】データベースのバックアップファイルを復元する方法を解説します

【SQL Server】大文字から小文字に変換するLOWER関数について解説します

【SQL Server】テーブルの列名を変更するsp_renameを解説します