Categories: ITっぽい

SQLのORDERで特定の値だけ順序を後にしたい

 SQLでORDERをかける時、特定の値だけ順序を変えたい時があります。
 会社名でソートするけれど特定の会社はトップに持ってきたいとか、価格でソートするけれどNULLなしのカラムで価格データなしに0が入っている、といった時です(DB設計がそもそもおかしいだろう、というのは全くその通りだと思いますが、そういうおかしいDBって一杯あります・・)。
 で、SQL小ネタですが、

ORDER BY CASE PRICE WHEN 0 THEN 2 ELSE 1 END , PRICE

 みたいにすると、PRICEのASCでソートするけれど、0だけは一番最後に持ってくるようになります。0とそれ以外でまずソートし、それから価格でソートしているからです。
 以上、小ネタでした。

よしこ画伯

Share
Published by
よしこ画伯

Recent Posts

バンクーバー

 バンクーバーの駅に降り立つと…

3年 ago

積極的相殺などについて

相手の押し込む動作、あるいは打…

6年 ago

地位を奪う

最近割と調子が良いので忘れない…

6年 ago