Mdh*_*ale 6 postgresql postgresql-9.1
我试图找到一个查询,告诉我不在我的数据库中的值.例如:
select seqID, segment from flu where seqID IN (1,2,3,4,5,6,7,8,9).
Run Code Online (Sandbox Code Playgroud)
现在如果我的数据库没有seqID的3,8,9我怎么才能找到/只显示缺少的seqID.
小智 8
with idlist (id) as (
values (1),(2),(3),(4),(5),(6),(7),(8),(9)
)
select l.id as missing_seq_id
from idlist l
left join flu f on f.seqID = l.id
where f.seqID is null;
Run Code Online (Sandbox Code Playgroud)
首先,既然您似乎是Stackoverflow的新手,那么这里有一些礼仪和帖子提示:
既然你没有完成上述所有工作,我就会猜测,所以我根据你的代码做了一些假设.您似乎需要一个EXCEPT语句.以下代码是在PostgreSQL 9.1上开发的.
create temp table my_value(seq_id int);
insert into my_value(seq_id) values
(1), (2), (4), (5), (6), (7);
select unnest(array[1, 2, 3, 4, 5, 6, 7, 8, 9])
EXCEPT
select distinct seq_id from my_value;
Run Code Online (Sandbox Code Playgroud)
我假设您有一个硬编码的整数列表(如问题中的示例).我刚刚创建了一个用于测试和演示目的的临时表,但我确信您可以进行必要的调整以适应您的情况.如果您没有硬编码的整数列表,那么您只需要再次选择包含它的任何来源.
希望这可以帮助.欢迎来到Stackoverflow.
| 归档时间: |
|
| 查看次数: |
1563 次 |
| 最近记录: |