【问题标题】: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;
      

      【讨论】:

        猜你喜欢
        • 2019-07-14
        • 1970-01-01
        • 1970-01-01
        • 2023-01-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多