我想通過聲明創建一個動態順序。ORDER BY與CASE子句
其目的是讀取每日計劃覆蓋表(0到*記錄)並決定在選定日期使用全局覆蓋或存儲覆蓋。
我想過使用像下面這樣的case子句,但它沒有按預期工作。
select * from schedule sdl
where day = 3
and (sdl.store_id = 23331 or sdl.store_id is null)
order by
case when sdl.force is true
then 'sdl.store_id nulls first'
else 'sdl.store_id nulls last'
end
limit 1
是否可以使用case語句創建一個order-by語句?或者對這個問題有更好的解決方法。
我覺得有人已經回答了這個問題: http://stackoverflow.com/questions/10645131/sql-case-statement-in-order-by-條款 – IHTS 2015-04-01 20:05:05