case WHEN ANY(SELECT bb.QUANTITYAMOUNT FROM bb)=0 你这个BB表里面的数据就一行的话 就对,否则就不对
case when 表达式表达式一般都写的是 对字段的判断 ,没见过你这么写的。

解决方案 »

  1.   

    case WHEN  exists(SELECT 1 FROM bb where bb.QUANTITYAMOUNT =0 )
    THEN (SELECT bb.AMOUNT FROM bb WHERE bb.QUANTITYAMOUNT=0) 
    ELSE (SELECT bb.AMOUNT FROM bb WHERE bb.QUANTITYAMOUNT>0) 
    END
    这样试试
      

  2.   

    在想问下,若其中的数据大于0的我就 (SELECT bb.AMOUNT FROM bb WHERE bb.QUANTITYAMOUNT>0) 
    否则为null
    再结合问题如何表达呢
      

  3.   

    用exists 不能用any
    --建表
    create table bb(id char(4),QUANTITYAMOUNT decimal(9,2),AMOUNT decimal(9,2))
    select 
    (
    case when exists(SELECT bb.QUANTITYAMOUNT FROM bb where id=bb.id and QUANTITYAMOUNT=0) 
    THEN (SELECT bb.AMOUNT FROM bb WHERE id=bb.id and bb.QUANTITYAMOUNT=0) 
    ELSE (SELECT bb.AMOUNT FROM bb WHERE id=bb.id and bb.QUANTITYAMOUNT>0) 
    END)
    from bb
      

  4.   

    select id,
          [sum]=case when bb.QUANTITYAMOUNT=0 then bb.AMOUNT else 0 end
    from tb