Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Уникальные записи в двух столбцах.  [new]
cander
Member

Откуда:
Сообщений: 16
Есть табличка, а в ней кроме остальных полей есть два поля Телефон1 и Телефон2. Нужно отобрать только те строки, в которых в полях Телефон1 и Телефон2 не встречаются в ранее пройденных строках. Т.е если, допустим, первые 10 строк были уникальные, а потом в поле Телефон1 ИЛИ Телефон2 есть телефон, который встречался в предыдущих 20-ти, то эту строку мы игнорируем.
16 авг 12, 12:29    [13019647]     Ответить | Цитировать Сообщить модератору
 Re: Уникальные записи в двух столбцах.  [new]
qwerty112
Guest
select ...
from t t1
where not exists (select 1 from t t2 where (t1.Телефон1=t2.Телефон1 or t1.Телефон2=t2.Телефон2) and t1.id>t2.id)
16 авг 12, 12:40    [13019731]     Ответить | Цитировать Сообщить модератору
 Re: Уникальные записи в двух столбцах.  [new]
user89
Member

Откуда:
Сообщений: 2083
cander,

вариант qwerty112 лучше

На всякий случай, выборка уникальных номеров у двух столбцов...
select Phone1 from MyTable
union
select Phone2 from MyTable
16 авг 12, 12:56    [13019860]     Ответить | Цитировать Сообщить модератору
 Re: Уникальные записи в двух столбцах.  [new]
cander
Member

Откуда:
Сообщений: 16
qwerty112
Вот результат

Например исходные данные

id tel1 tel2
1 11 12
2 22 23
3 33 34
4 22 24
5 50 11
6 56 57
7 60 33

вот что получилось

tel1 tel2
11 12
22 23
33 34
50 11
56 57
60 33

не должны попасть строки № 5 и № 7, т.к. тел 11 и 33 есть в предыдущих строках
16 авг 12, 14:28    [13020699]     Ответить | Цитировать Сообщить модератору
 Re: Уникальные записи в двух столбцах.  [new]
cander
Member

Откуда:
Сообщений: 16
Всй, дописал в WHERE

select *
from [t].[dbo].[t] t1
where not exists (select 1 from [t].[dbo].[t] t2 where (t1.tel1=t2.tel1 or t1.tel2=t2.tel2 or t2.tel1=t1.tel2 or t2.tel2 = t1.tel1) and t1.id>t2.id)

Спасибо.
16 авг 12, 14:35    [13020745]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить