如果我不知道值,是否显示一组行中的空值?

Show null values from a set of rows if I DON'T know the value?

所以背景是clientnumber是客户发给我的值,将被插入到数据库中。但是上面的3个数字还没有被我插入数据库,所以当我在数据库中搜索它们时它会变成空白。 SQL 是否可以将这些数字显示为空值?

如果我不知道以上 3 个值,我如何根据确实存在的值显示它们(因为它们在搜索时为空值)?

也许要做到这一点是对我已经插入的客户号码使用 not IN?但是假设我插入了 2000 个数字,那将是非常低效的。执行此操作的最佳方法是什么?

假设以下是我知道的值,但其中两个为空值,如何只显示空值?

select *
from dataentry with (nolock)
where clientnumber in (
'00602',
'00897',
'00940',
'22234',
'87669'
)

我想你可以使用 right join

--Let your table only contain these three number 00602,00897,00940
Create Table #temp
(
   clientnumber varchar(10)
)
INSERT INTO #temp
values
('00602'),
('00897'),
('00940')

--Here is your values that you want to test
Declare @table table
(
   clientnumber varchar(10)
)
INSERT INTO @table
values
('00602'),
('00897'),
('00940'),
('22234'),
('87669')

--the following shows the values that does not exists on your table
select ta.clientnumber 
from #temp as tm
right join @table as ta
on tm.clientnumber =ta.clientnumber
where tm.clientnumber is null

--the following shows all values and there are two null values due to no any match on your table
select tm.clientnumber 
from #temp as tm
right join @table as ta
on tm.clientnumber =ta.clientnumber


DROP TABLE #temp