LoginSignup
0
0

More than 3 years have passed since last update.

order by句でcase式を利用し、任意の順でソートする

Posted at

昇順、降順のソートならorder by asc descを用いれば実現できるが、任意の順でソートを行いたい場合、case式を使うことで実現できるようだ。

以下のようなデータを持つテーブルがある。

| tbl_key | x    | y    | z    |
+---------+------+------+------+
| A       |    1 |    2 |    3 |
| B       |    5 |    5 |    2 |
| C       |    4 |    7 |    1 |
| D       |    3 |    3 |    8 |
+---------+------+------+------+

結果順をtbl_keyのB-A-D-Cにしたい場合

SELECT
*
FROM Greatests
ORDER BY 
CASE tbl_key
WHEN 'B' THEN 1
WHEN 'A' THEN 2
WHEN 'D' THEN 3
WHEN 'C' THEN 4
ELSE NULL END;
-- 結果
+---------+------+------+------+
| tbl_key | x    | y    | z    |
+---------+------+------+------+
| B       |    5 |    5 |    2 |
| A       |    1 |    2 |    3 |
| D       |    3 |    3 |    8 |
| C       |    4 |    7 |    1 |
+---------+------+------+------+

こちらを参考にさせていただきました。
達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0