SQL用于两列的1:1匹配

时间:2011-07-06 11:25:06

标签: sql sql-server sql-server-2000

给定一个包含两列在每列中具有重复值的表的表,如何识别两行之间存在1:1匹配的行? E.g。

A A
B A
C A
A B
F B
C C
C C
B A
C A

我想选择C C.

我正在使用SQL Server 2000。

感谢。

5 个答案:

答案 0 :(得分:3)

column1, column2对行进行分组,然后挑选具有count > 1

的行

答案 1 :(得分:1)

你的意思是:

SELECT [COL1],[COL2] FROM [TABLE_NAME] WHERE [COL1] ='C'和[COL2] ='C'

编辑:

SELECT [COL1],[COL2] FROM [TABLE_NAME] WHERE [COL1] = [COL2]

编辑2:

那么它的独特之处呢?

SELECT [COL1] , [COL2], COUNT(*) FROM [TABLE_NAME] WHERE [COL1] = [COL2] GROUP BY [COL1] , [COL2] HAVING COUNT(*) = 1

答案 2 :(得分:1)

我认为这是重复检查,不是吗?你想找出2列上有重复的行吗?

所以

select col1, col2 from table 
where exists(select 1 from table tab2 where table.col1=tab2.col1 
and table.col2=tab2.col2 and tab2.id <> table.id)

答案 3 :(得分:1)

SELECT c1,c2,count(*) as c FROM tbl GROUP BY c1 HAVING c=1

答案 4 :(得分:0)

此?很难准确理解你的要求是什么。

SELECT `COL1`, `COL2` FROM `TABLE` WHERE `COL1` = `COL2`