数据库中存储空值有两种情况:一种情况是一个字段存储的值为NULL,另一种情况该字段存储的是空字符串。
我们要判断一个字段到底是不是空就得考虑这两种情况,比如更新一个字段时,该字段的值为原有值加上新值,这时需要判定原有值是否为空,如果为空就直接更新为新值。
例:
直接写
UPDATETableNameSETField=Field+','+newValueWHEREKeywords=keyValue
TableName表名、Field字段名(varchar)、newValue新值、Keywords主键、keyValue主键值
将会产生3种情况:
newValue为(C)
1.该字段有值(A,B)结果为(A,B,C)
2.该字段为空字符串结果为(,C)
3.该字段为NULL结果为(NULL)
而我们想要的结果是如果有值就得到第一种情况如果没有值那么就直接更改字段的值为(C)
那么我们只需要判断一下数据库的字段是否是后两种情况
我用到了判断语句IF……ELSE……写法如下:
--判断该字段是否是NULL如果是将该字段的值变成空字符串,这样我们就将两种空值情况都变成空字符串,然后判断该字段的长度
IF(SELECTLEN(ISNULL(Field,''))FROMTableNameWHEREKeywords=keyValue)>0
BEGIN
--按原有方法更新
UPDATETableNameSETField=Field+','+newValueWHEREKeywords=keyValue
END
ELSE
BEGIN
--直接更新为新值
UPDATETableNameSETField=newValueWHEREKeywords=keyValue
END