全ては時の中に… : 【SQL】ORDER BY句に指定する項目を条件によって変更する
SELECT * FROM 商品テーブル ORDER BY CASE WHEN 優先 IS NOT NULL THEN 整列順序 END, 商品分類, 商品コード
postgresqlもok
- ORDER BY句には条件式が記述できます.
- booleanの値をソートした場合 true は false より高い(大きい)値としてソートされます.
SELECT * from foo order by (i is null), i desc;
IN句の順番に並べる
SELECT * FROM foo WHERE id IN (100, 90, 95) ORDER BY CASE id WHEN 100 THEN 0 WHEN 90 THEN 1 WHEN 95 THEN 2 ELSE 0 END;