我有一个包含orderID
,UnitID
和OrderServiceId
的表变量(它已经通过带有insert语句的查询填充)。
然后我在此下面有一个查询,返回15列,其中还包括OrderId
,UnitId
,OrderServiceId
我只需要返回此查询中的行,其中OrderId
,UnitId
和OrderServiceId
的相同组合不在表变量中。
答案 0 :(得分:3)
您可以使用NOT EXISTS
。 e.g。
FROM YourQuery q
WHERE NOT EXISTS
(
SELECT * FROM @TableVar t
WHERE t.OrderId = q.OrderId
and t.UnitId = q.UnitId
and t.OrderServiceId=q.OrderServiceId
)
答案 1 :(得分:2)
select q.*
from (
MyQuery
) q
left outer join MyTableVariable t on q.ORDERID = t.ORDERID
and q.UNITID= t.UNITID
and q.ORDERSERVICESID = t.ORDERSERVICESID
where t.ORDERID is null
答案 2 :(得分:0)
您可以使用EXCEPT |这是(link)的INTERSECT运营商。
示例:
(select 3,4,1
union all
select 2,4,1)
intersect
(select 1,2,9
union all
select 3,4,1)