Я пытаюсь написать запрос, который будет возвращать записи, в которых поле в столбце 1 совпадает, но в некоторых других столбцах есть хотя бы одно различие.
Например:
Я хочу сравнить столбцы 2 и 4 для каждого значения в столбце 1. Если есть разница, мне нужно вернуть все поля в обеих строках.
Этот набор данных
Column1 | Столбец2 | Column3 | column4 | Column5
Воздушный фильтр | Форма | Круглая | Цвет | Красный
Воздушный фильтр | Форма | Панель
Nerf Bar | Отделка | Отполированный | Материал | Нержавеющая сталь
Бар Nerf | Отделка | Покрынный порошок | Материал | Нержавеющая сталь
Клобук | Цвет | Черный | Отделка | Порошок с покрытием
Капюшон | Отделка | Порошок с покрытием | Цвет | Черный
вернется:
Воздушный фильтр | Форма | Круглая | Цвет | Красный
Воздушный фильтр | Форма | Панель | NULL | NULL
потому что значение в столбце 4 не совпадает между записями
И
Клобук | Цвет | Черный | Отделка | Порошок с покрытием
Клобук | Отделка | Порошок с покрытием | Цвет | Черный
потому что значения в столбце 2 и столбце 4 не совпадают между записями
Я могу получить только одну запись для каждой части для возврата.
Вот код, который я пробовал:
Select *
from [My_Table] as a
where exists(select null from [My_Table] as b
where a.column1 = b.column1
and (a.column2 = b.column2
or a.column3 = b.column3
or a.column4 = b.column4
or a.column5 = b.column5))