我有一个具有以下结构的表:
Id MemberId Field1 Field2 Data
--------------------------------------------------
1 1 12 abc 1232
2 2 13 asl 234
3 2 12 abc 2345
4 1 3 sd sfsd
5 1 5 45r ffgf
根据参数member1
和member2
,我必须返回member1
中Field1
中Field2
中不具有相同值的所有ID member2
与member1 = 1
member2 = 2
。
输出示例:
4
5
预期产出:
Field1
因为第一条记录和第三条记录的Field2
和#tempTable
值相同。
如何实现这一目标?
我正在使用SQL Server 2014。
编辑:我不允许使用游标和临时表(如tours/cycle%20tour.htm cycle-tours.html
),我只能使用表变量
答案 0 :(得分:0)
如果我理解正确,您可以使用not exists
:
select t.*
from t
where not exists (select 1
from t t2
where t2.member1 = t.member1 and
t2.id <> t.id and
(t2.field1 = t.field1 or t2.field2 = t.field2)
);