选择查询以验证现有数据

时间:2017-10-24 17:23:25

标签: sql sql-server sql-server-2008 subquery

我有一张如下表:

Id  Attribute  Column A  Column B Column C   H   S  
1     H/S        1           1      1        01  02
2     H/S        2           3      1        01  02
3     H/S        1           4      1        01  02
4     H/S        1           1      3        03  04
5     H/S        1           1      3        03  04
6     H/S        1           6      7        05  06

我想对上面的数据运行一个select查询,以便它以这样的方式验证条目:对于相同的属性(H / S)值,在A列,B列和C列中不应该有不同的值

如果有这样的条目,那么select query应该返回如下条目:(对上述数据的期望输出):

   Id  Attribute  Column A  Column B Column C    H   S  
    1     H/S        1           1      1        01  02
    2     H/S        2           3      1        01  02
    3     H/S        1           4      1        01  02
    6     H/S        1           6      7        05  06

1 个答案:

答案 0 :(得分:1)

您可以使用NOT EXISTS来消除重复项:

SELECT *
FROM MyTable t
WHERE NOT EXISTS (
    SELECT *
    FROM MyTable dup
    WHERE t.Id <> dup.Id
      AND t.ColumnA = dup.ColumnA
      AND t.ColumnB = dup.ColumnB
      AND t.ColumnC = dup.ColumnC
      AND t.H = dup.H
      AND t.S = dup.S
)

Demo.