【发布时间】:2011-01-26 08:47:02
【问题描述】:
我必须按某列整理我的数据,以便首先出现某个特定值。所以对于这样的查询......
SELECT rtrim(taskid) into v_taskid FROM tasks
where
/* some where clausers */
and rownum = 1
...我基于case when,但困扰我的是我现在拥有的三个嵌套选择:
SELECT rtrim(taskid) into v_taskid FROM tasks where taskid in (
select taskid from (
select taskid,
case when taskuser like '%myuser%'
then 0
else 100
end as ordervalue
FROM tasks
where
/* some where clausers */
order by ordervalue
)
)
and rownum = 1
就性能而言,我认为这应该不是问题,但它看起来有点像意大利面……有没有办法将case-when 放入where 子句中?
【问题讨论】: