我想通过声明创建一个动态顺序。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