SQLServer Order By 並べ替え

今回は、SQLSERVERでのデータの並び替え(ORDER BY) について紹介していきます。

データの昇順、降順、ソート順の指定 この3つのやり方を例を見ながら見ていきましょう。

データの昇順 ASC

まずは、データの昇順について、紹介します。

ちなみに昇順というのは、1,2,3,4,5といった小さい値から大きい値へ並び替える順番のことです。

今回は、このような15件のデータを準備しました

この15件のデータを、heightの昇順で並び替えてみましょう。

SELECT
  id
 ,nickName
 ,animal
 ,height
 ,weight
 ,insDt
 ,updDt
FROM
  hironimoTable
ORDER BY
  height ASC

 

ORDER BY 項目 ASC 

と記載することで、昇順に並べることができますし、ASCは省略することも可能です。

SELECT
  id
 ,nickName
 ,animal
 ,height
 ,weight
 ,insDt
 ,updDt
FROM
  hironimoTable
ORDER BY
  height

結果

結果をみてみると、heightの昇順に並んでいることが確認できました。

 

データの降順 DESC

次に降順について、紹介していきます。

昇順は、小さい値から大きい値に並び替えることでしたが、降順はその逆で、大きい値から小さい値に並び替える時に使用します。

先ほどのデータを、heightの降順に並び替えてみましょう。

SELECT
  id
 ,nickName
 ,animal
 ,height
 ,weight
 ,insDt
 ,updDt
FROM
  hironimoTable
ORDER BY
  height DESC

 

ORDER BY 項目 DESC

と記載することで、降順に並べることができます。

結果

結果をみてみると、heightの降順に並んでいることが確認できました。

 

昇順と降順を組み合わせて使用することもできます。
heightの昇順、weightの降順に並び替えてみましょう。

SELECT
  id
 ,nickName
 ,animal
 ,height
 ,weight
 ,insDt
 ,updDt
FROM
  hironimoTable
ORDER BY
  height ASC , weight DESC

 

結果

height=150のデータが降順に並び変わってますね。
このように、項目ごとに昇順と降順を設定することができます。

また項目を記載する順番で並び替えの優先順位が決まります。
ORDER BY weight DESC , height ASC
このような順番で記載すると体重の降順で並び替えた後、身長の昇順で並び替えます。

指定した値を優先して並び替える

項目ごとに昇順、降順で並び替えることがほとんどなのですが、仕事をしていると時々、この値の時だけ、優先して表示したい!と思うときがあります。
そういう時は、CASEを利用して、並び替えを行いましょう。知っておくと便利です。

それでは、さっそく見てみましょう。

先ほどと同じように、身長の昇順に並び替えて、体重の降順に並び替えるけど、id = 00001とid = 00004のデータを優先して並び替えを行いたいといった場合、

SELECT
  id
 ,nickName
 ,animal
 ,height
 ,weight
 ,insDt
 ,updDt
FROM
  hironimoTable
ORDER BY
  CASE 
    WHEN id = '00001' THEN 1 
	WHEN id = '00004' THEN 2 
	ELSE 3 
  END 
, height
, weight DESC

 

このような書き方をすることで、優先順位を指定して並び替えることができます。
なんとなくわかると思いますが、[id=00001を1] [id=00004を2][それ以外を3]として昇順に並び替えを行っています。

もちろん、降順指定をすることもできます。

SELECT
  id
 ,nickName
 ,animal
 ,height
 ,weight
 ,insDt
 ,updDt
FROM
  hironimoTable
ORDER BY
  CASE 
    WHEN id = '00001' THEN 1 
	WHEN id = '00004' THEN 2 
	ELSE 3 
  END  DESC
, height
, weight DESC

 

このように、CASE文と組み合わせることで、並び替えの指定をすることができるので、是非参考にしてみてください。

 

まとめ

初心者の方は、ASCとDESCだけで十分だと思うので、まずはASCとDESCを使いこなしましょう。

ORDER BY 項目 ASC で昇順に並び替え
ORDER BY 項目 DESC で昇順に並び替え

並び替えの指定を行いたい時は、CASE文を利用する。

 

SQLServerの記事一覧

おすすめの記事