Обновление : Я неправильно понял вопрос. Я думаю, что в этом случае я бы выбрал значения во временную таблицу, а затем выбрать значения, которых нет в этой таблице. Я знаю, что это не идеально, проблема в том, что вам нужно каким-то образом получить список имен деталей на SQL Server (либо через IN, либо поместив их во временную таблицу), но семантика IN не делает то, что вы хотите.
Примерно так:
CREATE TABLE tabSparePart
(
SparePartName nvarchar(50)
)
insert into tabSparePart values('1234-2043')
CREATE TABLE #tempSparePartName
(
SparePartName nvarchar(50)
)
insert into #tempSparePartName values('1234-2043')
insert into #tempSparePartName values('1238-1036')
insert into #tempSparePartName values('1237-8026')
select * from #tempSparePartName
where SparePartName not in (select SparePartName from tabSparePart)
С выходом:
SparePartName
1238-1036
1237-8026
Оригинальный (неправильный) ответ:
Вы можете просто использовать "not in
":
SELECT * from tabSparePart WHERE SparePartName NOT in(
'1234-2043','1237-8026','1238-1036','1238-1039','1223-5172'
)