select 字段1,
   case when 字段1='004' then '001'
         when  字段1 ='005' then '002'
         else '003' end 字段2
              
     case when 字段1='004' then '5000'
          when 字段1='005' then '10000'
         
          else '20000' end 字段3
         
  from tb1希望select得出的结果为
字段1 字段2 字段3
004   001   5000
005   002   10000
.....

解决方案 »

  1.   


    --没怎么懂呢? 神马情况?
    select 字段1,
          case when 字段1='004' then '001'
                when 字段1 ='005' then '002'
                else '003' 
           end 字段2,
           case when 字段1='004' then '5000'
                when 字段1='005' then '10000'
                else '20000' 
           end 字段3
    from tb1
      

  2.   


    select 字段1,
    (case when 字段1='004' then '001'
         when 字段1 ='005' then '002'
         else '003' end) 字段2,
    (case when 字段1='004' then '5000'
         when 字段1='005' then '10000'
         else '20000' end) 字段3
        from tb1
      

  3.   


    with tmp as
    (
    select '003' type from dual
    union all
    select '004' type from dual
    union all
    select '005' type from dual
    )
    select a.col1, 
            case when b.type='004' then '001'
                 when b.type='005' then '002'
                else '003'
            end col2,
           case when b.type='004' then '5000'
                when b.type='005' then '1000'
              else '20000' 
           end col3
        a.col2,a.col3
      from tb1 a, tmp b
    where a.col1 = b.type;