如何删除 SQL 服务器中列中带有 "Empty Strings" 的行?
How can I delete rows with "Empty Strings" in a column in SQL Server?
我有很多 rows/records 其中一列 (movieId) 没有任何有用的值:
根据答案 here,以下应该有效:
...但事实并非如此,正如您在矩形“没有受影响的行”中看到的那样
如何 eliminate/delete MovieId 列中的所有行都没有任何内容(但为空 space)?
关于为什么您的 IS NULL
删除不起作用的一个解释是 MovieId
值是空字符串,而不是 NULL
。您可以使用以下选项同时处理 NULL
和空字符串:
DELETE
FROM dbo.ACTORS_MOVIES_M2M
WHERE COALESCE(MovieId, '') = '';
也许是这个?
DELETE
FROM dbo.ACTORS_MOVIES_M2M
WHERE NULLIF(MovieId, '') IS NULL;
请注意,上面的示例似乎有多个空格,而不仅仅是一个空白值。
因此,您可以使用与上述类似的方法删除它们,但使用 trim。
FROM dbo.ACTORS_MOVIES_M2M
WHERE LTRIM(MovieId) = '' OR Movie_ID IS NULL;
您也可以使用上面的 COALESCE/NULLIF 选项,例如,
FROM dbo.ACTORS_MOVIES_M2M
WHERE COALESCE(LTRIM(MovieId), '') = '';
我有很多 rows/records 其中一列 (movieId) 没有任何有用的值:
根据答案 here,以下应该有效:
...但事实并非如此,正如您在矩形“没有受影响的行”中看到的那样
如何 eliminate/delete MovieId 列中的所有行都没有任何内容(但为空 space)?
关于为什么您的 IS NULL
删除不起作用的一个解释是 MovieId
值是空字符串,而不是 NULL
。您可以使用以下选项同时处理 NULL
和空字符串:
DELETE
FROM dbo.ACTORS_MOVIES_M2M
WHERE COALESCE(MovieId, '') = '';
也许是这个?
DELETE
FROM dbo.ACTORS_MOVIES_M2M
WHERE NULLIF(MovieId, '') IS NULL;
请注意,上面的示例似乎有多个空格,而不仅仅是一个空白值。
因此,您可以使用与上述类似的方法删除它们,但使用 trim。
FROM dbo.ACTORS_MOVIES_M2M
WHERE LTRIM(MovieId) = '' OR Movie_ID IS NULL;
您也可以使用上面的 COALESCE/NULLIF 选项,例如,
FROM dbo.ACTORS_MOVIES_M2M
WHERE COALESCE(LTRIM(MovieId), '') = '';