SQL比较两列,其中第三列是常量并返回差异

时间:2012-12-12 00:02:49

标签: sql

我需要比较另一个字段(组)是常量的表中的两个描述字段,如果存在不匹配的描述数据则返回所有行。

例如,如果我有这张表:

Chart   Group   Desc1   Desc2
 1      11111     a       b
 2      11111     a       x
 1      22222     z       h
 2      22222     z       h
 5      22222     u       h
 1      55555     j       p
 3      55555     j       p
 4      55555     j       p

我需要返回Group值相同的所有行,并且Desc1或Desc2与同一组的其余描述值不同。我的回报是:

Chart   Group   Desc1   Desc2
 1      11111     a       b
 2      11111     a       x
 1      22222     z       h
 2      22222     z       h
 5      22222     u       h

我试图做某种选择明显而且我失败了......感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

SELECT c1.*, c2.*
FROM   Chart c1
       INNER JOIN
       Chart c2 ON c1.Group=c2.Group
WHERE  c1.Desc1<>c2.Desc1 
       OR
       c1.Desc2<>c2.Desc2

这将为每对不匹配提供2行,不幸的是,根据您提供的数据,我看不到任何允许我唯一标识每一行的内容 - 如果您有id列,则可以添加c1 。ID