如何在SQL Server中用NULL替换列中的值?

时间:2019-05-23 16:25:50

标签: sql-server

是否有比下面的代码更好的方法用NULL替换列值

select 
    case when A is not NULL end as columnname 

我尝试使用update函数,但我意识到它仅适用于字符串。

1 个答案:

答案 0 :(得分:2)

要在SQL表中将值替换为NULL,查询的基本形式为:

UPDATE MyTable
SET FieldName = NULL
[WHERE FieldName = <ValueToReplace>]

如果您想一次在多个字段中用NULL替换特定值,这会变得更加复杂。可以通过对每个字段使用上述语句一次,或在更新中使用CASE语句来解决此问题。

UPDATE MyTable
SET FieldName1 = CASE WHEN FieldName1 = '' THEN NULL ELSE FieldName1 END,
    FieldName2 = CASE WHEN FieldName2 = -1 THEN NULL ELSE FieldName2 END

如果您想使特定行中的任何值都为NULL,则查询将更像这样:

UPDATE MyTable
SET FieldName1 = NULL,
    FieldName2 = NULL
WHERE RowID IN (1,6,22,405)