在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))
答案 0 :(得分:0)
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
答案 1 :(得分:0)
您可以使用嵌套表作为输入:
SQL> CREATE TABLE table_name (ID NUMBER NOT NULL);
Table created
SQL> INSERT INTO table_name (SELECT ROWNUM FROM dual CONNECT BY LEVEL <= 5);
5 rows inserted
SQL> CREATE TYPE tab_number AS TABLE OF NUMBER;
2 /
Type created
SQL> SELECT *
2 FROM TABLE(tab_number(1,2,10)) x
3 WHERE x.column_value NOT IN (SELECT ID FROM table_name);
COLUMN_VALUE
------------
10