Tsql SQL检查where语句中某列的值是否为null,如果为null,则将其设置为某个值

Tsql SQL检查where语句中某列的值是否为null,如果为null,则将其设置为某个值,tsql,sql-server-2008-r2,where,isnull,Tsql,Sql Server 2008 R2,Where,Isnull,我有一个SQL查询 SELECT * FROM ##tempt WHERE ( minstock <= 0 AND numitems - backorder - cstock >= 1 ) OR ( minstock >= 1 AND numitems - backorder + minstock - cstock >= 1 ) 如何检查minstock的值是否为null,如果为null,则将

我有一个SQL查询

SELECT * 
FROM   ##tempt 
WHERE  ( minstock <= 0 
         AND numitems - backorder - cstock >= 1 ) 
        OR ( minstock >= 1 
             AND numitems - backorder + minstock - cstock >= 1 ) 
如何检查minstock的值是否为null,如果为null,则将其设置为某个数字?

您可以使用isnullminstock,0-如果minstok为null,则返回0。
您还可以对两个以上的值使用coalesceminstock,other_field,0

您不能在同一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 )

可以尝试使用ISNULLminstock、0或其他东西吗?
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 )