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

Откуда:
Сообщений: 1
Добрый вечер. Помогите, пожалуйста. Имеется таблица:
A | B | С
-------------
1 | 12 |
2 | 45 | 2
3 | 49 | 3
4 | 57 | 2, 4
5 | 80 | 7
6 | 91 | 2, 3
7 | 109 | 9
8 | 115 | 3, 8, 10
И т. д.
Мне нужно из этой таблицы получить таблицу, в столбце C которой будут значения, которые не повторялись ранее. Т. е. для поля "4" мы убираем двойку из столбца "С", так как она уже была в поле "2". Из поля "6" убираем и 2, и 3, так как они были ранее и т. д. Вот должна быть такая таблица:
A | B | С
-------------
1 | 12 |
2 | 45 | 2
3 | 49 | 3
4 | 57 | 4
5 | 80 | 7
6 | 91 |
7 | 109 | 9
8 | 115 | 8, 10
И т. д.
P.S. БД MS SQL 2017
3 июн 19, 20:59    [21900929]     Ответить | Цитировать Сообщить модератору
 Re: Запрос в MS SQL 2017: выбрать значения из строки, которые не повторялись ранее  [new]
Владислав Колосов
Member

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

колонку С надо разобрать в таблицу, данные в ней не повторяются. Они повторяются только в Вашей голове, а не на сервере. Затем остатки надо снова собрать в строки.

declare @t table (id int, val int);
insert @t values
	(2, 2),(3, 3),(4, 2),(4, 4),(5, 7),(6, 2),(6, 3),(7, 9),(8, 3),(8, 8),(8, 10);

select * from @t

select * from @t t1
where not exists (select * from @t t2 where t2.val = t1.val and t2.id < t1.id)


Чтобы пользоваться реляционной механикой, требуются реляционные данные.
3 июн 19, 21:20    [21900949]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить