我有一个场景,我需要将 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 概念的专家。任何帮助将不胜感激。
谢谢你。
您可以尝试以下方法
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))||',')