IsNull() sql function



我正在尝试将名为"Number"的列字段的值递增 1,如果该值当前为 Null,我想将值设置为 1,因为 Null 值无法递增。我发现了isNull()函数,但使用以下语句没有得到结果:

Update SomeTable set Number = IsNull(Number, Number+ 1) where
ItemCode = '000000' ;

我的问题基本上是如何同时以 1 的增量更新字段值,并将值设置为 1(如果当前为"NULL")

谢谢!

从函数的第二个参数中删除Number ISNULL

任何 + 空 = 空

因此,在NULL时将结果ISNULL 0,然后将1添加到结果中

Update SomeTable set Number = IsNull(Number, 0) + 1 where
ItemCode = '000000' ;

Update SomeTable set Number = IsNull(Number+1, 1) where
ItemCode = '000000' ;

或两个不同的更新(不推荐)

Update SomeTable set Number = Number + 1 where
ItemCode = '000000' AND Number IS NOT NULL;
Update SomeTable set Number = 1 where
ItemCode = '000000' AND Number IS NULL;

ISNULL函数在主值为 null 时选择替代值。

UPDATE SomeTable SET Number =
CASE
    WHEN Number IS NULL THEN 1 ELSE Number + 1
END 
WHERE ItemCode = '000000' ;

UPDATE SomeTable SET Number = ISNULL(Number, 0) + 1
WHERE ItemCode = '000000' ;

语句 WHERE ItemCode = '000000'; 将更新具有此项目代码的所有记录:000000 。一个简单的update SomeTable set Number = 1就可以解决您的问题。

最简单的方法是在找到 NULL 时使用 coalesce 提供默认值 0,如

Update SomeTable 
   set Number = coalesce(number,0) + 1
 where ItemCode = '000000' ;

最新更新