IsNull() sql 函数
IsNull() sql function
我正在尝试将名为 "Number" 的列字段的值递增 1,如果该值当前为 Null,我想将该值设置为 1,因为 Null 值无法递增。我发现了 isNull() 函数,但没有使用以下语句获取结果:
Update SomeTable set Number = IsNull(Number, Number+ 1) where
ItemCode = '000000' ;
我的问题基本上是如何以 1 的增量同时更新字段值并将该值设置为 1(如果当前为 "NULL"
谢谢!
从 ISNULL
函数的第二个参数中删除 Number
。
Anything + NULL = NULL
所以当 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
函数如果主值为空,则选择替代值。
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' ;
最简单的方法是使用 coalesce
在发现 NULL 时提供默认值 0,如
Update SomeTable
set Number = coalesce(number,0) + 1
where ItemCode = '000000' ;
语句 WHERE ItemCode = '000000';
将更新所有具有此项目代码的记录:000000
。一个简单的update SomeTable set Number = 1
就能解决你的问题。
我正在尝试将名为 "Number" 的列字段的值递增 1,如果该值当前为 Null,我想将该值设置为 1,因为 Null 值无法递增。我发现了 isNull() 函数,但没有使用以下语句获取结果:
Update SomeTable set Number = IsNull(Number, Number+ 1) where
ItemCode = '000000' ;
我的问题基本上是如何以 1 的增量同时更新字段值并将该值设置为 1(如果当前为 "NULL"
谢谢!
从 ISNULL
函数的第二个参数中删除 Number
。
Anything + NULL = NULL
所以当 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
函数如果主值为空,则选择替代值。
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' ;
最简单的方法是使用 coalesce
在发现 NULL 时提供默认值 0,如
Update SomeTable
set Number = coalesce(number,0) + 1
where ItemCode = '000000' ;
语句 WHERE ItemCode = '000000';
将更新所有具有此项目代码的记录:000000
。一个简单的update SomeTable set Number = 1
就能解决你的问题。