特定の値が最初に表示されるように、データを列ごとに並べ替える必要があります。したがって、このようなクエリの場合...
SELECT rtrim(taskid) into v_taskid FROM tasks
where
/* some where clausers */
and rownum = 1
... に基づいていますcase when
が、気になるのは、現在持っている 3 つのネストされた選択です。
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