Вярніце ўсе радкі, у якіх адно поле тое ж самае, але ёсць па меншай меры адна розніца ў іншых галінах

Я спрабую напісаць запыт, які вяртае запісы, у якіх поле ў Стоўбцах 1 з'яўляецца тое ж самае, але ёсць па меншай меры адна розніца ў канкрэтных іншых слупках.

Напрыклад:
Я хачу, каб параўнаць слупкі 2 і 4 для кожнага значэння ў Стоўбцах 1. Калі ёсць розніца, мне трэба ўсе палі ў абодвух шэрагах, каб вярнуцца.

This data set
Column1|Column2|Column3|Column4|Column5
Air Filter|Shape|Round|Color|Red
Air Filter|Shape|Panel
Nerf Bar|Finish|Polished|Material|Stainless Steel
Nerf Bar|Finish|Powder Coated|Material|Stainless Steel
Hood|Color|Black|Finish|Powder Coated
Hood|Finish|Powder Coated|Color|Black

вернуцца:
Паветраны фільтр | Форма | Круглы | Колер | Чырвоны
Паветраны фільтр | Форма | Панэль | NULL | NULL
так як значэнне ў калонцы 4 не адпавядае паміж запісамі
І
Hood | Колер | чорны | Канец | парашковым пакрыццём
Капот | Канец | парашковае пакрыццё | Колер | Чорны
таму што значэння ў калонцы 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))
1

1 адказы

SELECT t1.column1, t1.column2, t1.column3, t1.column4, t1.column5
    FROM My_Table t1
        INNER JOIN My_Table t2
            ON t1.column1 = t2.column1
    WHERE COALESCE(t1.column2,'') <> COALESCE(t2.column2,'')
        OR COALESCE(t1.column4,'') <> COALESCE(t2.column4,'')
1
дададзена
Гэта працуе! Я дадаў розны, так як ён першапачаткова вярнуўся ў 5 разоў колькасці запісаў, якія я меў. Вялікі дзякуй !!
дададзена аўтар user955289, крыніца
У мяне ёсць яшчэ адно пытанне аб змене крытэрыяў гэтага запыту. Ці павінен я папрасіць яго тут, або прадставіць іншую пасаду?
дададзена аўтар user955289, крыніца
Мне патрэбен падобны запыт, які будзе вяртаць радкі з адрозненнямі, на аснове дадзеных у папярэднім полі. Так, напрыклад, у радках, дзе слупок 1 з'яўляецца такім жа, слупок 4, можа быць пустым, калі значэнне ў калонцы 2 адрозніваецца паміж запісамі. Дадатак прызначана, каб задаць пытанні, заснаваныя на адказ, таму калі я пытаюся, які колер дэталь, і адказ на чорным, наступны пытанне павінна быць такім жа. Але калі ёсць два адказы, я магу сачыць за пытаннем, калі адказ будзе чорным, але я не павінен прасіць тое ж пытанне, калі адказ з'яўляецца срэбрам. Я, магчыма, прыйдзецца растлумачыць больш падрабязна.
дададзена аўтар user955289, крыніца
Буду рабіць. Дзякуй, Джо!
дададзена аўтар user955289, крыніца
@ User955289: Што за пытанне?
дададзена аўтар Joe Stefanelli, крыніца
@ User955289 Гэта гучыць досыць розныя, каб апраўдаць новы пост.
дададзена аўтар Joe Stefanelli, крыніца