查找不同的行

时间:2009-12-19 15:28:39

标签: sql distinct

假设有以下结构,我需要找出是否存在每个CP4 + CP3组合有多个DESC的情况。我只需知道它们是否存在。不是他们在哪里。

CP4,整数
CP3,整数
DESC,varchar(50)

2 个答案:

答案 0 :(得分:4)

您可以使用自联接进行检查:如果以下查询返回任何行,则CP4 + CP3组合有多个DESC:

select     * 
from       YourTable a
inner join YourTable b
on         a.CP3 = b.CP3
           and a.CP4 = b.CP4
           and a.DESC <> b.DESC

一个小组也会工作:

select   count(*)
from     YourTable
group by CP3, CP4
having   count(distinct DESC) > 1

顺便说一句,DESC是一个SQL关键字;您可能必须以特定于数据库的方式转义它。

答案 1 :(得分:0)


SELECT COUNT(DESC)
FROM [Table]
GROUP BY CP4, CP3
HAVING COUNT(DESC) > 1
检查此查询是否返回超过0行然后返回true,否则返回false。