给定一个包含两列在每列中具有重复值的表的表,如何识别两行之间存在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。
感谢。
答案 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`