根据第一条记录的值和第二条记录的值删除行

时间:2021-06-04 19:33:54

标签: sql sas proc-sql

全部,

我目前正在尝试捕获用户进行更改的实例,但随后用户返回并恢复了更改。如下图所示,我需要捕获 ID 相同的行,然后第一条记录中的 value1 与第二条记录中的 value2 匹配,第一条记录中的 value1 与第一条记录中的 value2 匹配。我不确定这是解决这个问题的最佳方法,但这是我想到的。我尝试通过子查询分离,但没有运气。

Sample Table

2 个答案:

答案 0 :(得分:0)

您可以使用 exists 获取这些行:

select t.*
from t
where exists (select 1
              from t t2
              where t2.id = t.id and
                    t2.value1 = t.value2 and
                    t2.value2 = t.value1
             );

答案 1 :(得分:0)

你可以使用这个:

SELECT ID, Value1, Value2
From mytable a
INNER JOIN mytable b ON b.ID = a.ID and b.Value1 = Value2