如何删除 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), '') = '';