Raj.rcr Ответов: 1

Извлечение второго и последовательного повторяющихся значений как NULL в SQL server


Дорогие Все,

Я пытаюсь получить вторые и последовательные повторяющиеся значения как NULL, объединив две таблицы на основе идентификатора заказа, который является общим в обеих таблицах.

Я пробовал использовать CTE и многие другие запросы, но не получал точного результата.

Пожалуйста, проверьте приведенный ниже URL-адрес, чтобы увидеть результат :

http://www.ikatraining.com/sqlquery.png

Мне нужно такое же количество записей, но я хочу вернуть нулевое значение для повторяющихся значений столбца OrderXML (выделенного на снимке экрана) в окончательном выводе моего запроса select.

Любая помощь или предложение будут очень признательны.

Спасибо и с уважением,

Что я уже пробовал:

CTE также используется в SQL - запросе и объединении.. Я дал ссылку на результат, который я получаю

CHill60

Пожалуйста, не включайте ссылки на изображения, чтобы объяснить вашу проблему. Вы могли бы легко ввести эту информацию в свой вопрос, и ваша ссылка сделает ваш пост похожим на спам.
Вы говорите, что пробовали использовать CTE и UNION, а затем показываете код, который вы пробовали

1 Ответов

Рейтинг:
0

CHill60

Вот демонстрация этого принципа, вам придется адаптировать его к вашей собственной таблице

-- Some sample data
create table #demo (test varchar(10), myValue varchar(10))
insert into #demo (test, myValue) values
('val1', 'value 1'),
('val1', 'value 1'),
('val2', 'value 1'),
('val2', 'value 2'),
('val2', 'value 2')
Запрос:
;with cte as 
(
	select test, myValue, 
		row_number() OVER (PARTITION BY test ORDER BY test, myValue) as rn
	from #demo
)
select test, case when rn = 1 then myValue else null end as myValue
from cte
Комментарий:
Из-за перегородки на НОМЕР СТРОКИ [^] мы получаем номер строки для каждой строки внутри один test ценность. Именно так можно обнаружить "дубликаты".

Позаботьтесь о том, как вы решите упорядочить значения, поскольку это определит, какие из них считаются дубликатами.