如何将值从 IN 子句传递到 Oracle PLSQL 中的子查询

问题描述 投票:0回答:1

我有一个场景,我需要将 IN 子句中的值传递到子查询,该子查询使用 Oracle PLSQL 返回特定列的值。 假设我的主要查询如下:

SELECT column1, column2, columnn3
FROM table1 t1 JOIN table2 t2 on t1.colName= t2.colName
JOIN table3 t3 on t2.colName = t3.colName
WHERE column1 IN (12345, 67900, 23456...)

现在假设主查询中column2 的值是使用另一个子查询派生的,该子查询需要IN 子句中存在的column1 值。例如,当子查询在column1 = 12345时获取数据时,需要传递给它的值12345来计算column2值。类似地,子查询在column1 = 67900时获取数据时需要值67900,依此类推。

如何将column1的当前迭代值传递给计算column2值的子查询?

我不是 Oracle PLSQL 概念的专家。任何帮助将不胜感激。

谢谢你。

oracle plsql plsqldeveloper
1个回答
0
投票

您可以尝试以下方法

     SELECT column1, column2, columnn3
     FROM table1 t1 JOIN table2 t2 on t1.colName= t2.colName
     JOIN table3 t3 on t2.colName = t3.colName
     WHERE instr(',12345,67900,23456,', ','||cast(column1 as varchar(255))||',') > 0
    order by   instr(',12345,67900,23456,', ','||cast(column1 as varchar(255))||',')
© www.soinside.com 2019 - 2024. All rights reserved.