gpt4 book ai didi

oracle - 在 Oracle DB 中将字符串列表转换为数字

转载 作者:行者123 更新时间:2023-12-01 22:26:53 25 4
gpt4 key购买 nike

我使用 Oracle Apex Shuttle 字段 like(3:4:5) 将表 ID 作为外键保存到另一个表中。现在我想在使用 IN 子句的 sql 查询中使用这些 IDS。我已经使用 replace 函数将 : 替换为 , 但它显示了

no data found

消息。

当我使用静态值时,以下查询工作正常。

select * from table where day_id IN(3,4,5)

但是当我尝试使用

select * from table where id IN(Select id from table2)

它显示没有找到数据。

最佳答案

据我了解,您有一个类似 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;

这将返回:

List
1
2
3
4

然后你可以像这样简单地将它添加到你的查询中:

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
);

关于oracle - 在 Oracle DB 中将字符串列表转换为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32900656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com