给定一个ID列表,我需要确定那些不在Oracle数据库中的ID.例如,给定表:
MY_TABLE
+----+-------+
| ID | DATA |
+----+-------+
| 1 | Foo |
+----+-------+
| 3 | Bar |
+------------+
| 5 | Etc |
+------------+
Run Code Online (Sandbox Code Playgroud)
...并且给出了列表[1,2,3,4],我需要列表[2,4].
我使用一个MINUS子句提出了这个语法:
SELECT '1' as id FROM dual
UNION
SELECT '2' as id FROM dual
UNION
SELECT '3' as id FROM dual
UNION
SELECT '4' as id FROM dual
MINUS
SELECT id FROM my_table WHERE id IN ('1','2','3','4')
Run Code Online (Sandbox Code Playgroud)
但是这看起来非常笨拙并且会很快变得混乱,因为实际上我将同时处理数百个ID.获取值列表比UNION语法有更好的语法吗?
有效的东西:
/* Pseudo code */
SELECT id FROM VALUES ('1', '2', …Run Code Online (Sandbox Code Playgroud)