Muh*_*lik 2 oracle oracle-apex
我使用 Oracle Apex Shuttle 字段将表 ID 作为外键保存到另一个表中like(3:4:5)。现在我想在sql查询中使用这些IDS使用INClause。我已替换:为,usingreplace函数,但它显示
没有找到数据
信息。
当我使用静态值时,以下查询工作正常。
select * from table where day_id IN(3,4,5)
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用
select * from table where id IN(Select id from table2)
Run Code Online (Sandbox Code Playgroud)
它显示没有找到数据。
1:2:3:4据我了解,您有一个想要在子句中使用的列表IN;您可以将列表转换为单独的值,如下所示:
select regexp_substr('1:2:3:4','[^:]+', 1, level) as list from dual
connect by regexp_substr('1:2:3:4', '[^:]+', 1, level) is not null;
Run Code Online (Sandbox Code Playgroud)
这将返回:
List
1
2
3
4
Run Code Online (Sandbox Code Playgroud)
然后你可以简单地将它添加到你的查询中,如下所示:
SELECT *
FROM TABLE
WHERE day_id IN
(SELECT regexp_substr('1:2:3:4','[^:]+', 1, level) AS list
FROM dual
CONNECT BY regexp_substr('1:2:3:4', '[^:]+', 1, level) IS NOT NULL
);
Run Code Online (Sandbox Code Playgroud)