T-SQL Проверка на наличие дублированных значений field1, но разных значений field2 - PullRequest
3 голосов
/ 02 ноября 2010

Мой сценарий таков:

У меня есть таблица с такой структурой (упрощенно) -

CREATE TABLE [dbo].[pe_mem](
    [pm_member] [int] NULL,
    [pm_surname] [char](50) NULL,
    [pm_forename] [char](50) NULL,
    [pm_rsi_num] [char](11) NULL

) ON [PRIMARY]

Мне нужно выполнить запрос, чтобы найти все строки, имеющие идентично pm_rsi_num, но отличается pm_sameame.

Кто-нибудь может мне помочь с этим?

Спасибо!

Ответы [ 3 ]

4 голосов
/ 02 ноября 2010

Для этого вы можете использовать самостоятельное соединение:

select  *
from    pe_mem t1
join    pe_mem t2
on      t1.pm_rsi_num = t2.pm_rsi_num
        and t1.pm_surname <> t2.pm_surname
2 голосов
/ 02 ноября 2010

Существует вариант:

select  *
from    pe_mem t1
where exists
(select null
 from   pe_mem t2
 where  t1.pm_rsi_num = t2.pm_rsi_num
        and t1.pm_surname <> t2.pm_surname)

Версия сканирования одной таблицы:

select pm_rsi_num
from pe_mem
group by pm_rsi_num
having count(distinct pm_surname) > 1
2 голосов
/ 02 ноября 2010

Просто присоединитесь к таблице и используйте ваши критерии в качестве критерия объединения:

select * from pe_mem as p1
inner join pe_mem as p2
on p1.pm_rsi_num = p2.pm_rsi_num
    and p1.pm_surname <> p2.pm_surname
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...