Sql server SQL在许多列中为空
我必须从许多列中提取空值。我一直在做一些研究,但它告诉我,我可以一次做一个专栏,这将需要很长时间。有更好的办法吗?我现在掌握的代码是:Sql server SQL在许多列中为空,sql-server,sql-server-2008,sql-server-2005,Sql Server,Sql Server 2008,Sql Server 2005,我必须从许多列中提取空值。我一直在做一些研究,但它告诉我,我可以一次做一个专栏,这将需要很长时间。有更好的办法吗?我现在掌握的代码是: Update table set column1 = 0 where column1 IS NULL 任何帮助或想法都会有帮助。谢谢,Michelle你可能会想要这样的东西 更新表集合column1=COALESCE(column1,0),column2=COALESCE(column2,0),其中column1为NULL或column2为NULL
Update table set column1 = 0 where column1 IS NULL
任何帮助或想法都会有帮助。谢谢,Michelle你可能会想要这样的东西 更新表集合column1=COALESCE(column1,0),column2=COALESCE(column2,0),其中column1为NULL或column2为NULL COALESCE函数将使用第一个非null的数值。这意味着如果column1为null,则使用0。但如果column1为null,则使用0
OR语句将允许您返回任何列1或列2中为null的行,并相应地更新它们。您可能需要类似的内容 更新表集合column1=COALESCE(column1,0),column2=COALESCE(column2,0),其中column1为NULL或column2为NULL COALESCE函数将使用第一个非null的数值。这意味着如果column1为null,则使用0。但如果column1为null,则使用0
OR语句将允许您返回任何列1或列2中有null的行,并相应地更新它们。如果我理解您的意思,您想从跨越多个不同列的表中删除所有null吗?如果审计不是问题,那么您可以这样做:
UPDATE [TABLE]
SET Column1 =
CASE
WHEN Column1 IS NULL THEN 0
ELSE Column1
END,
Column2 =
CASE
WHEN Column2 IS NULL THEN 0
ELSE Column2
END, ....
如果我理解您的意思,您想从跨越多个不同列的表中删除所有空值吗?如果审计不是问题,那么您可以这样做:
UPDATE [TABLE]
SET Column1 =
CASE
WHEN Column1 IS NULL THEN 0
ELSE Column1
END,
Column2 =
CASE
WHEN Column2 IS NULL THEN 0
ELSE Column2
END, ....
我身上没有SSMS实例,或者我靠近一个正在工作的db(我刚刚重新安装了我的box),但现在是使用游标的好时机(因为这似乎是一个一次性请求)。如果这里出现语法错误,请原谅——如果有人看到错误,请随意编辑:)
我身上没有SSMS实例,或者我靠近一个正在工作的db(我刚刚重新安装了我的box),但现在是使用游标的好时机(因为这似乎是一个一次性请求)。如果这里出现语法错误,请原谅——如果有人看到错误,请随意编辑:)
您可以使用ISNULL选项
UPDATE table
SET column1 = ISNULL(column1, 0)
,column2 = ISNULL(column2, 0)
WHERE column1 IS NULL
OR column2 IS NULL;
您可以使用ISNULL选项
UPDATE table
SET column1 = ISNULL(column1, 0)
,column2 = ISNULL(column2, 0)
WHERE column1 IS NULL
OR column2 IS NULL;
这可能是一个愚蠢的问题,但我仍在努力学习sql。我被告知IS NULL返回一个布尔值,不替换一个值,这与coalesce相同吗?coalesce将从左到右返回作为参数发送给它的第一个非NULL值。如果发送的所有值都为null,则返回null。所提供的问题@minitech清楚地说明了thisisnull确实返回布尔值,但是ISNULL(columnName,value)返回columnName列的值,或者如果columnName为NULL,则返回“value”。非常感谢!你帮了我很多!这可能是一个愚蠢的问题,但我仍在努力学习sql。我被告知IS NULL返回一个布尔值,不替换一个值,这与coalesce相同吗?coalesce将从左到右返回作为参数发送给它的第一个非NULL值。如果发送的所有值都为null,则返回null。所提供的问题@minitech清楚地说明了thisisnull确实返回布尔值,但是ISNULL(columnName,value)返回columnName列的值,或者如果columnName为NULL,则返回“value”。非常感谢!你帮了我很多!