【发布时间】:2011-05-10 03:38:36
【问题描述】:
我正在为 oracle 10g 使用 SQL 进行一些调试。我有一个用于“IN 子句”的大输入字符串,即
select * from table where col in ('str2','str3','str4','str5',...)
我想将 in 子句转换为行或表? 有没有办法做到这一点,即
select 'str2','str3','str4','str5', .. from dual
但这输出多列,我想要多行?
编辑:
这就是我想要做的。假设我在 tmp_table1 中有一个 excel 数据(实际上无法创建)并且 tmp_table1 与 IN 子句相同,那么下面的语句将给出缺少的键。
SELECT *
FROM tmp_table1
WHERE unique_id NOT IN (
SELECT unique_id
FROM table1
WHERE unique_id IN
('str1', 'str2', 'str3', 'str4'))
现在@andriy-m solution 在输入字符串小于 4000 时有效。但如果它更大呢?
【问题讨论】: