微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQL:删除其中 2 列与另一行中的值匹配的行

如何解决SQL:删除其中 2 列与另一行中的值匹配的行

我在 SAS EG 的 proc sql 下工作,并试图从我的表中删除所有行,其中有两个特定的列是重复的。行中的其余值会有所不同,所以我不只是删除重复的行。

该表名为planned_rotn_data,需要匹配的行分别为empl_nbr和rotn_beg_dt

简化示例如下:

<ul class="connected">
  <li class="name">Alex</li>
  <li class="name">Laura</li>
</ul>

我只想删除第 1 行或第 3 行中的一个在这种情况下无关紧要,但可以说它基于 col3 中的值)。

解决方法

使用 proc sql -- 并假设另一列是唯一的 -- 您可以使用:

proc sql;
    delete from t
    where t.col3 > (select min(t2.col3)
                    from t t2
                    where t2.Empl_Nbr = t.Empl_Nbr and t2.rotn_beg_dt = t.rotn_beg_dt
                   );

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。