gpt4 book ai didi

sql - 在 where 条件下具有所有强制值的 Oracle sql 查询

转载 作者:行者123 更新时间:2023-12-02 07:44:34 25 4
gpt4 key购买 nike

我想在 ORACLE 中编写一个选择查询,只有当 where 条件中给定的所有值都存在时,它才会返回记录。例如

select * from emp where empid in (7521,7566,7698)

现在我想编写此查询,以便它仅在所有 3 个 empid 都存在时才返回值。它类似于 AND 条件,即 empid = 7521 和 empid = 7566 以及 empid = 7698。如果任何一个值不存在,则此查询不应获取任何行。

最佳答案

再次运行相同的查询,作为嵌套选择,并计算其记录

select * from emp 
where empid in (7521, 7566, 7698)
and 3 = (select count(*) from emp where empid in (7521, 7566, 7698))

或者,对原始结果使用分析函数并检查:

select * from (
select emp.*, count(*) over() as cnt
from emp where empid in (7521, 7566, 7698)
)
where cnt = 3

关于sql - 在 where 条件下具有所有强制值的 Oracle sql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7926507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com