0

我有这个 SQL 查询

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

我将如何检查的值是否minstock为空,如果为空,则将其设置为某个数字?

4

3 回答 3

5

您可以使用isnull(minstock, 0)- 如果 minstok 为空,它将返回 0。您还可以使用coalesce(minstock, other_field, 0)两个以上的值

于 2012-10-18T04:53:52.877 回答
1

您不能UPDATE在同一 SQL 查询中更新该列,但如果数据库中给定行的特定列的值为 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 回答
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 回答