我有以下查询
DECLARE @ProductIdsToExclude nvarchar(max)
SET @ProductIdsToExclude ='49506541-4CE2-40AC-812A-7AB262E6F0B0,49506541-4ce2-40ac-812a-7ab262e6f0b0'
然后我使用this函数将@ProductIdsToExclude解析为临时表:
创建表
#TempProductIdsToExclude(ProductId uniqueidentifier)
INSERT
#TempProductIdsToExclude(ProductId)
选择
t.txt_value
FROM
dbo.fn_ParseText2Table(@ProductIdsToExclude,',')as t
然后我使用此查询来提取所有产品:
SELECT * FROM Products
我的问题是 - 如何将查询排除 Products 表中 ProductId 包含在中的所有结果> #TempProductIdsToExclude
谢谢!
答案 0 :(得分:2)
使用where not exists
:
select *
from Products prod with (nolock)
where not exists (select 1
from #TempProductIdsToExclude temp
where temp.ProductId = prod.ProductId)
答案 1 :(得分:0)
您可以使用:
select * from products where productId not in (select productId from ) #TempProductIdsToExclude)