我有一张表格,59列,超过17K行。很多行在某些列上有NULL
。
我想要删除NULL
,使查询返回一个空白值(''
),而不是NULL
。
我能运行某个更新函数,将所有的NULL
替换为''
吗?
使用 SQL Server 2008R2 管理工具。
UPDATE my_table
SET column_1 = REPLACE (column_1,NULL,'')
但是把这个方法应用到所有59列上需要很长时间!
团队,有什么技巧吗?
我有一张表格,59列,超过17K行。很多行在某些列上有NULL
。
我想要删除NULL
,使查询返回一个空白值(''
),而不是NULL
。
我能运行某个更新函数,将所有的NULL
替换为''
吗?
使用 SQL Server 2008R2 管理工具。
UPDATE my_table
SET column_1 = REPLACE (column_1,NULL,'')
但是把这个方法应用到所有59列上需要很长时间!
团队,有什么技巧吗?
Select isnull(col1,'')
使用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值。ISNULL
COALESCE
的复制品,而在其他RDBMS中则不可用。(好吧,有微妙的差别,请阅读手册以了解详细信息或在此处获取更多详细信息。)''
)仅适用于字符串类型,例如数字类型则不适用。试试这个:
UPDATE yourtable SET column1 = ' ' WHERE column1 = NULL
replace()
不起作用。 - Gordon Linoff