有一表test
id   b
1   1000
2   1200
3   2000
4   800
5   680
6   2400现在要查询的是:如果b=<1000   则 b 按原来的显示
                如果1000<b<2000 则b×1.2
                如果b>=2000   则 b×1.5 请问各位大虾,怎么实现?

解决方案 »

  1.   

    select id,case when b<=1000 then b
                   when b>1000 and b<2000 then 1.2*b 
                   when b>2000 then 1.5*b end b
    from tablename;
      

  2.   

    这种需求用 case ... when 最合适了,严重同意楼上
      

  3.   

    還要注意你數據庫的版本,在9i以下好像是不支持這個Case語句的
    我目前測試8.05是不支持的。
      

  4.   

    支持SQL-92标准的数据库应该都能用CASE语句, 因为CASE的用法是
    ANSI SQL-92标准定的.