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

Откуда:
Сообщений: 67
Есть таблица с повторами:
create table #ttt (id bigint identity, name nvarchar(100), flag bit)
insert #ttt(name) values('Маша')
insert #ttt(name) values('Вася')
insert #ttt(name) values('Маша')
insert #ttt(name) values('Петя')
insert #ttt(name) values('Миша')
insert #ttt(name) values('Маша')
insert #ttt(name) values('Вася')

Есть запрос
select distinct name from #ttt
, возвращающий
Вася
Маша
Миша
Петя

Как теперь в исходную таблицу добавить флаг только на первое (любое) уникальное значение, то есть сделать например так:
1	Маша	1
2	Вася	1
3	Маша	0
4	Петя	1
5	Миша	1
6	Маша	0
7	Вася	0
чтобы в дальнейшем перелинковать данные из всех связанных таблиц к отмеченным записям, и лишние потом долбануть.

Чего-то не получается красивого решения одним запросом...
А функции с вызовом подзапросов использовать не хочется.

Нет простого решения?
26 сен 05, 18:35    [1911413]     Ответить | Цитировать Сообщить модератору
 Re: Туплю. Как оставить в таблице по одной из повторяющиехся записей?  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
https://www.sql.ru/forum/actualsearch.aspx?search=%F3%E4%E0%EB%E8%F2%FC+%E4%F3%E1%EB%E8%EA%E0%F2%FB&st=t&a=&ma=0&bid=1&dt=-1&s=1&so=1

https://www.sql.ru/forum/actualsearch.aspx?search=%EF%EE%E2%F2%EE%F0%FF%FE%F9%E8%E5%F1%FF+%E7%E0%EF%E8%F1%E8&st=t&a=&ma=0&bid=1&dt=-1&s=1&so=1
26 сен 05, 18:40    [1911424]     Ответить | Цитировать Сообщить модератору
 Re: Туплю. Как оставить в таблице по одной из повторяющиехся записей?  [new]
MOXHATOE
Member

Откуда:
Сообщений: 67
И правда - туплю по страшному :(

Сделал так:
update #ttt set
flag = 1
where id in (
	select min(id) as first from #ttt group by name 
)

Всем спасибо за участие и прошу прощения, что отвлек такой ерундой!
26 сен 05, 19:02    [1911476]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить