【问题标题】:How to use If condition inside a Case statement?如何在 Case 语句中使用 If 条件?
【发布时间】:2012-02-28 06:51:09
【问题描述】:
以下是我的查询。对吗?
SQL> select case when value in (1000) then null
2 when user in ('ABC') then user
3 when area in ('DENVER') then
4 if value = 2000 then 'Service1'
5 else value = 3000 then 'Service2'
6 end if
7 else null
8 end as num_code from service_usoc_ref;
if prin = 2000 then 'Omaha'
*
ERROR at line 4:
ORA-00905: missing keyword
请帮帮我。
【问题讨论】:
标签:
oracle
if-statement
case
【解决方案1】:
你可以放另一个 case 或者使用 decode(正如@madhu 建议的那样):
select case
when value in (1000) then null
when user in ('ABC') then user
when area in ('DENVER') then
case when value = 2000 then 'Service1'
when value = 3000 then 'Service2'
end
else null
end as num_code
from service_usoc_ref;
【解决方案2】:
这对你有帮助
select case when value in (1000) then null
when user in ('ABC') then user
when area in ('DENVER') then
decode( value, 2000 , 'Service1',3000 , 'Service2', NULL) num_code
from service_usoc_ref;