SQL:如何在 2 列中查找重复项

SQL: How to find duplicates across 2 columns

我想 return 'duplicate' 或 'not duplicate' 用于 A 列中出现在同一 table 中的 B 列中的值。示例如下:

Column A Column B Column C
3 1 duplicate
2 4 not duplicate
5 3 not duplicate

我该怎么做?

我们可以在这里尝试使用存在的逻辑:

SELECT
    ColumnA,
    ColumnB,
    CASE WHEN EXISTS (SELECT 1 FROM yourTable t2 WHERE t2.ColumnB = t1.ColumnA)
         THEN 'duplicate' ELSE 'not duplicate' END AS ColumnC
FROM yourTable t1;

加入就是解决方案

   SELECT columnA, columnB, case when t2.columnB is not null then 'duplicate' else 'not duplicate' end as columnC
    FROM  table1 t1 left join table1 t2 on t1.columnA = t2.columnB