SQL问题 - 从列表中查找数字

Ion*_*Ion 6 sql oracle

我有一张包含100个数字的表格.现在我有一个11个数字的列表,其中一个不在表中(与100个数字不同).

当我查询11个数字列表后,select * from table where number in (' ',' ',' '......)它返回表格中的10个数字.

现在我的问题是:如何从列表中找到不在表中的数字?(仅限SQL,因为现在我使用Excel来做到这一点).

谢谢!

Den*_*rdy 7

您需要使用values子句:

with yourlist as (
select 1 as i from dual
union all
select 2 as i from dual
...
union all
select 3 as i from dual
)
select yourlist.i
from yourlist
left join yourtable
on yourtable.num = yourlist.i
where yourtable.num is null
Run Code Online (Sandbox Code Playgroud)


pra*_*arg 1

在oracle数据库中你也可以使用NOT IN ..

意味着正如您已经使用并了解IN关键字一样,对于您想要的输出,您可以使用 NOT IN...

您也可以使用以下查询来实现这一点——

情况 1:表中的 10 个数字 - (假设表名称为 list1)

select list1.num from list1
where list1.num not in (select distinct table.number from table)
Run Code Online (Sandbox Code Playgroud)

情况 2:因为您已经发布了您的问题,看起来表格中没有数字 -

select list1.num from 
(
select number1 num from dual
union
select number2 num from dual
union
select number3 num from dual
union
select number4 num from dual
union
select number5 num from dual
union
select number6 num from dual
union
select number7 num from dual
union
select number8 num from dual
union
select number9 num from dual
union
select number10 num from dual
union
select number11 num from dual
) list1
where list1.num not in (select distinct table.number from table)
Run Code Online (Sandbox Code Playgroud)

您必须粘贴您的列表号码来代替 number1 到 number11。