本来的表结构如下
id   price
1     5
2     7
3     12
要返回
id    price   0-5   6-10   12-20
1      5       5  
2      7              7 
3      12                    12

解决方案 »

  1.   

    select id,price,
    [0-5]= case when price between 0 and 5 then price end,
    [6-10]= case when price between 6 and 10 then price end,
    [11-20]= case when price between 11 and 20 then price end
    from tb
      

  2.   


    select id,price,  
    (case when price between 0 and 5 then price end) as 0-5,
     (case when price between 6 and 10 then price end) 6-10,
     (case when price between 11 and 20 then price end)11-20 
    from tb 
      

  3.   

    select id,price,  
    (case when price between 0 and 5 then price end) as 0-5,
     (case when price between 6 and 10 then price end) as 6-10,
     (case when price between 11 and 20 then price end) as 11-20 
    from tb 
      

  4.   

    这样会不会 price=4 的时候  (case when price between 6 and 10 then price end) as 6-10,
     (case when price between 11 and 20 then price end) as 11-20 

    也执行一次 能不能用嵌套 减少判断次数
    当然不能觉得减少
    执行 =4 是 不执行后面的两句
    =7 时不执行 后面的一句
    提高一点效率
    (不知sql查询优化器会不会考虑这些)