A表内容
SERIAL_NUMBER   PROCESS_ID CURRENT_STATUS
910Y1202021781     100033      1
910Y1202021782     100033      0
910Y1202021784     100039      0判断条件 :当PROCESS_ID=100033 ,CURRENT_STATUS=0 这两个条件都符合,另曾一个栏位Test  显示值为OK
           其他的话就显示NG就是最后查询的结果为:SERIAL_NUMBER   PROCESS_ID CURRENT_STATUS   Test
                      910Y1202021781       100033              1           NG
                      910Y1202021782       100033              0           OK
求SQl  ,本人新手,有待提高
                       

解决方案 »

  1.   

    select SERIAL_NUMBER ,
    PROCESS_ID ,
    CURRENT_STATUS,
    decode(CURRENT_STATUS,0,'OK','NG') Test
    from A
    where PROCESS_ID=100033 
      

  2.   

    select SERIAL_NUMBER ,
    PROCESS_ID ,
    CURRENT_STATUS,
    (case CURRENT_STATUS when 0
    then 'OK' else 'NG' end)Test
    from A
    where PROCESS_ID=100033 
    --or
    select SERIAL_NUMBER ,
    PROCESS_ID ,
    CURRENT_STATUS,
    (case when CURRENT_STATUS=0 then 'OK' else 'NG' end)Test
    from A
    where PROCESS_ID=100033 
      

  3.   


    select t.SERIAL_NUMBER, t.PROCESS_ID,t.CURRENT_STATUS,
    case 
     when t.PROCESS_ID='100033' and t.CURRENT_STATUS='0' 
     then 'OK'
     else 'NG' 
    end Test
     from A t;