sql - 查询输出表中不存在的值

标签 sql oracle

在 Oracle 查询方面需要帮助

要求:

我在一个表中有 5 行假设 ID = 1、2、3、4、5

要求用户可以将任何值作为输入传递,如果该值不在表中,则查询应返回不存在的值。

例如:
1. 如果用户传递 9 那么 Oracle 查询应该返回输出为 9
2. 如果用户传递 1,2,10,那么 Oracle 查询应该返回 10 的输出

因为上例中的 9 和 10 不在表中。

我正在使用以下查询但没有得到结果。

SELECT ID
FROM TABLE_NAME WHERE ID NOT IN
(SELECT ID 
FROM TABLE_NAME where ID NOT in (1,2,10))

最佳答案

create table z (id number);
Table created.

SQL> insert into z values (1);
1 row created.
SQL> insert into z values (2);
1 row created.
SQL> insert into z values (3);
1 row created.
SQL> insert into z values (4);
1 row created.
SQL> insert into z values (5);
1 row created.

SQL> select 10 id from dual
  2  minus
  3  select id from z;

    ID
----------
    10

关于sql - 查询输出表中不存在的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5750886/

相关文章:

mysql - 我正在努力在一个简单的查询中输出正确的 SQL 代码

oracle - 从 Pandas 到 Oracle 的 CSV(但不使用 to_sql,因为那很慢)

sql - 如何限制 oracle 数据库中每个 id 的行数?

mysql - 通过连接两个表创建的 View 是否读取未查询/未使用的列?

c# - 如何动态生成每个数据带/组中具有相似数量的数据?

mysql - 在MySQL中进行特殊排序,3个随机最高分,比所有随机

oracle - Oracle_SID 是否与 Oracle 上的登录名相同?

mysql - 在 Rails 中计算日期范围内每天记录数的有效方法,无需每天进行一次查询

sql - SQL 日期时间的粒度

sql - 在 Oracle 中创建触发器