我有一個表變量,它包含orderID
,UnitID
和OrderServiceId
(它已經通過帶insert語句的查詢填充)。我的表變量中不存在的SQL顯示記錄
我則有權根據本返回15列其中還包括OrderId
,UnitId
,OrderServiceId
我只需要從該查詢哪裏OrderId
,UnitId
和OrderServiceId
相同的組合是返回行的查詢不在表變量中。
我有一個表變量,它包含orderID
,UnitID
和OrderServiceId
(它已經通過帶insert語句的查詢填充)。我的表變量中不存在的SQL顯示記錄
我則有權根據本返回15列其中還包括OrderId
,UnitId
,OrderServiceId
我只需要從該查詢哪裏OrderId
,UnitId
和OrderServiceId
相同的組合是返回行的查詢不在表變量中。
您可以使用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
)
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更快了! – 2010-09-14 17:01:15
可能會重複,因爲它是JOIN。使用不存在 – gbn 2010-09-14 17:22:19
您可以使用EXCEPT | INTERSECT運營商爲此(link)。
例子:
(select 3,4,1
union all
select 2,4,1)
intersect
(select 1,2,9
union all
select 3,4,1)
+1不存在,總是,恕我直言 – gbn 2010-09-14 17:22:46