0

私はこのSQLクエリを持っています

SELECT * 
FROM   ##tempt 
WHERE  ( minstock <= 0 
         AND numitems - backorder - cstock >= 1 ) 
        OR ( minstock >= 1 
             AND numitems - backorder + minstock - cstock >= 1 ) 

minstockの値が nullかどうかを確認し、 null の場合は数値に設定する方法を教えてください。

4

3 に答える 3

5

使用できますisnull(minstock, 0)- minstok が null の場合は 0 を返します。coalesce(minstock, other_field, 0)3つ以上の値にも使用できます

于 2012-10-18T04:53:52.877 に答える
1
SELECT * 
FROM   ##tempt 
WHERE  ( ISNULL(minstock,0)<= 0 
     AND numitems - backorder - cstock >= 1 ) 
    OR ( ISNULL(minstock,0)>= 1 
         AND numitems - backorder + ISNULL(minstock,0)- cstock >= 1 ) 
于 2012-10-18T04:56:17.683 に答える
1

同じ SQL クエリで使用して列を更新することはできませんが、次のように、関数UPDATEを使用して、特定の行のデータベースで特定の列の値が NULL である場合、別の値を使用できます。ISNULL()

SELECT * 
FROM   ##tempt 
WHERE  ( ISNULL(minstock, 0) <= 0 
         AND numitems - backorder - cstock >= 1 ) 
    OR ( minstock >= 1 
         AND numitems - backorder + minstock - cstock >= 1 )
于 2012-10-18T04:55:13.957 に答える