use decode to do this

解决方案 »

  1.   

    参考以下:
    SELECT product_id,
           DECODE (warehouse_id, 1, 'Southlake', 
                                 2, 'San Francisco', 
                                 3, 'New Jersey', 
                                 4, 'Seattle',
                                    'Non-domestic') 
           quantity_on_hand FROM inventories;
      

  2.   

    to: jiezhi(西域浪子) 能详细说明吗?我对ORACLE了解得不多
      

  3.   

    参考以下:
    SELECT product_id,
           DECODE (warehouse_id, 1, 'Southlake', 
                                 2, 'San Francisco', 
                                 3, 'New Jersey', 
                                 4, 'Seattle',
                                    'Non-domestic') 
           quantity_on_hand FROM inventories;
      

  4.   

    to : mywhsw(bamboo) 
    quantity_on_hand 是什么意思?
      

  5.   

    quantity_on_hand 别名,如果你的oracle为8i或以上的话,用case语句,就和sql-server一样
      

  6.   

    只能用常量吗??能不能用表达式  比如: SELECT product_id,
           DECODE (warehouse_id, warehouse_id>1, 'Southlake', 
                                 warehouse_id<1, 'San Francisco') 
           quantity_on_hand FROM inventories;
      

  7.   

    select id,decode(sign(date1-sysdate-7),1,'Date1成立',0,'Date1成立')
         ||  decode(sign(date2-sysdate-7),1,'Date2成立',0,'Date2成立')
    from table1
    where date1>sysdate-7 or date2>sysdate-7
      

  8.   

    select id,decode(sign(date1-sysdate-7),1,'Date1成立',-1,'Date1不成立')
             ,decode(sign(date2-sysdate-7),1,'Date2成立',-1,'Date2不成立')
              decode(sign(date2-sysdate-7)+sign(date2-sysdate-7),2,'Date1,Date2成立')
    from table1
    where date1>sysdate-7 or date2>sysdate-7
      

  9.   

    SELECT id, decode(SIGN(datea - SYSDATE + 7), 1, 'Date1成立') 
          || decode(SIGN(dateb - SYSDATE + 7), 1, 'Date2成立')
    FROM a
    WHERE datea > SYSDATE - 7 OR
          dateb > SYSDATE - 7