SQL显示我的表变量中不存在的记录

时间:2010-09-14 16:56:31

标签: sql sql-server sql-server-2005

我有一个包含orderIDUnitIDOrderServiceId的表变量(它已经通过带有insert语句的查询填充)。

然后我在此下面有一个查询,返回15列,其中还包括OrderIdUnitIdOrderServiceId

我只需要返回此查询中的行,其中OrderIdUnitIdOrderServiceId的相同组合不在表变量中。

3 个答案:

答案 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)