私は列1のフィールドは同じですが、特定の他の列に少なくとも1つの違いがあるレコードを返すクエリを記述しようとしています。
例:
私は列1の各値に対して列2と列4を比較したいと思います。差がある場合は、両方の行のすべてのフィールドを返す必要があります。
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
NULL
列4の値がレコード間で一致しないためです。
そして
フード|カラー|ブラック|フィニッシュ|粉体塗装
フード|仕上げ|粉体塗装|カラー|ブラック
列2と列4の値がレコード間で一致しないためです
私は返すべき各部分のためのただ1つの記録を得ることができます。
私が試したコードは次のとおりです:
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))