我想用UPDATE TABLE SET QTY1 =ROUND(QTY1/1000,3),QTY2=ROUND(QTY2/1000,3),当QTY为0时就会出错,请问如何测试QTY1,QTY2是否为0。不要WHERE QTY1>0.多谢!

解决方案 »

  1.   

    --可以Y
    DECLARE @T TABLE (QTY DEC(16,3))
    INSERT @T SELECT 0
    INSERT @T SELECT 2
    INSERT @T SELECT 3
    UPDATE @T SET QTY=ROUND(QTY/1000,3)
    SELECT * FROM @T
    /*QTY                
    ------------------ 
    .000
    .002
    .003*/
      

  2.   

    UPDATE TABLE SET QTY1 =
    (CASE WHEN QTY1<>0 THEN  ROUND(QTY1/1000,3)ELSE 0.0 END),
    QTY2=
    CASE WHEN QTY2<>0 THEN  ROUND(QTY2/1000,3) ELSE 0.0 END)
      

  3.   

    UPDATE TB SET QTY1 =ROUND(QTY1/1000,3),QTY2=ROUND(QTY2/1000,3)