2010-09-14 52 views
0

我有一個表變量,它包含orderID,UnitIDOrderServiceId(它已經通過帶insert語句的查詢填充)。我的表變量中不存在的SQL顯示記錄

我則有權根據本返回15列其中還包括OrderIdUnitIdOrderServiceId

我只需要從該查詢哪裏OrderIdUnitIdOrderServiceId相同的組合是返回行的查詢不在表變量中。

回答

3

您可以使用NOT EXISTS。例如

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 
) 
+0

+1不存在,總是,恕我直言 – gbn 2010-09-14 17:22:46

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 
+1

+1更快了! – 2010-09-14 17:01:15

+0

可能會重複,因爲它是JOIN。使用不存在 – gbn 2010-09-14 17:22:19

0

您可以使用EXCEPT | INTERSECT運營商爲此(link)

例子:

(select 3,4,1 
union all 
select 2,4,1) 

intersect 

(select 1,2,9 
union all 
select 3,4,1) 
相關問題