몇 가지 특정 값을 먼저 표시하도록 데이터를 정렬해야합니다.오라클 SQL 케이스 주문시
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
성능이 많다는 나는 생각한다 그것은 문제가 안된다,하지만 그것은 스파게티의 일종 보인다 ... where
절에 case-when
넣어 어떤 방법이 있습니까?
여기서는 분석 쿼리가 필요하지 않으며 성능에 영향을 미칩니다. –