【发布时间】:2015-04-01 20:00:42
【问题描述】:
我想创建一个动态 order by 语句。
其目的是读取每日计划覆盖表(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 语句?或者也许有更好的方法来解决这个问题。
【问题讨论】:
-
我想有人已经回答了这个问题:stackoverflow.com/questions/10645131/…
标签: sql postgresql