SQL для 1: 1 совпадение двух столбцов - PullRequest
0 голосов
/ 06 июля 2011

Учитывая таблицу из двух столбцов с повторяющимися значениями в каждом столбце, как я могу определить строки, в которых существует соответствие 1: 1 между двумя строками? Э.Г.

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

Я хочу выбрать C C.

Я использую SQL Server 2000.

Спасибо.

Ответы [ 5 ]

3 голосов
/ 06 июля 2011

Сгруппируйте строки по column1, column2 и выберите те, которые имеют count > 1

1 голос
/ 06 июля 2011
SELECT c1,c2,count(*) as c FROM tbl GROUP BY c1 HAVING c=1
1 голос
/ 06 июля 2011

Я думаю, что это двойная проверка, не так ли?Вы хотите узнать какие-нибудь строки с дубликатами в 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)
1 голос
/ 06 июля 2011

Вы имеете в виду:

ВЫБЕРИТЕ [COL1], [COL2] ИЗ [TABLE_NAME], ГДЕ [COL1] = 'C' И [COL2] = 'C'

EDIT:

ВЫБРАТЬ [COL1], [COL2] ИЗ [TABLE_NAME] ГДЕ [COL1] = [COL2]

РЕДАКТИРОВАТЬ 2:

Значит, это уникальность?

SELECT [COL1] , [COL2], COUNT(*) FROM [TABLE_NAME] WHERE [COL1] = [COL2] GROUP BY [COL1] , [COL2] HAVING COUNT(*) = 1
0 голосов
/ 06 июля 2011

Это?Трудно понять, каковы ваши требования.

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