首页 > 解决方案 > 如何在 SQL Server 中删除空列数据

问题描述

在我的存储过程中,我有一个临时表,其中有如下数据:

在此处输入图像描述

我为一些员工获得 2 行,其中一个具有 emp 名称,而另一个为空。

现在我需要删除employee 的行,如果它有重复的行且emp 名称为空。

如果它是空的单行,我们不需要删除。我只需要删除突出显示的。

请帮助这里的条件是什么

在此处输入图像描述

标签: sqlsql-servernullsql-delete

解决方案


您可以使用运算符检查名称is null,并有另一个exists条件来检查具有非空名称的对应 id:

DELETE a
FROM   mytable a
WHERE  emp_name IS NULL AND
       EXISTS (SELECT *
               FROM   mytable b
               WHERE  b.emp_name IS NOT NULL AND a.emp_id = b.emp_id)

推荐阅读