我有一张有59列和17,000多行的表格。NULL
在某些列中有很多行。
我想删除,NULL
以便查询返回空白(''
)而不是NULL
。
我可以运行所有替换一些更新的功能NULL
有''
?
使用SQL Server 2008R2 Management Studio。
UPDATE my_table
SET column_1 = REPLACE (column_1,NULL,'')
但这将永远花在所有59列上!
诀窍是什么,团队?
使用SQL标准COALESCE
:
UPDATE my_table
SET column_1 = COALESCE(column_1,'')
, column_2 = COALESCE(column_2,'')
...
WHERE column_1 IS NULL OR
column_2 IS NULL OR
... -- avoid empty updates
;
然后用于ALTER TABLE ...
向NOT NULL
所有不具有NULL的列添加约束,以禁止重新引入NULL值。
不要使用 ,这基本上是某些RDBMS中标准的重复,而在其他RDBMS中则不可用。(嗯,有一些细微的差异,请阅读手册以获取详细信息,甚至在这里了解更多信息。) ISNULL
COALESCE
当然,空字符串(''
)仅对字符串类型有效。例如,不适用于数字类型。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句