SQL Server:搜索值在表中没有条目

时间:2016-05-07 21:04:51

标签: sql sql-server

我有一个表格,其中包含以下值:

ID | Name
---------------
 1 | Anavaras
 2 | Lamurep

我需要一个查询,它输出表中没有条目的值。

例如:

如果我的where子句包含id in('1','2','3','4'),则应该生成输出

3 |
4 | 

表格中的上述条目。

3 个答案:

答案 0 :(得分:2)

您可以将其放入“派生表”并使用left join或类似的结构:

select v.id
from (values(1), (2), (3), (4)) v(id) left join
     t
     on t.id = v.id
where t.id is null;

答案 1 :(得分:0)

这样的事情:

load(sprintf('A_%05i_*.jpeg', First_idx))

我会假设?

答案 2 :(得分:0)

首先,您需要将in拆分为一个表格。样本拆分功能在这里:

CREATE FUNCTION [dbo].[split] 
(
    @str varchar(max), 
    @sep char
)
RETURNS 
@ids TABLE 
(
id varchar(20)
)
AS
BEGIN
declare @pos int,@id varchar(20)

while len(@str)>0
begin
select @pos = charindex(@sep,@str + @sep)
select @id = LEFT(@str,@pos),@str = SUBSTRING(@str,@pos+1,10000000)
insert @ids(id) values(@id)
end 
    RETURN 
END

然后你可以使用这个功能。

select id from dbo.split('1,2,3,4,5',',') ids
left join myTable t on t.id=ids.id
where t.id is null
-- if table ID is varchar then '''1'',''2'',''3'''