标题可能看起来有点令人困惑,但查询可能有助于理解我的困境。 我有这样的查询
SELECT TAB1.USER_ID,
(SELECT DISTINCT MAX(SYS_CONNECT_BY_PATH(B.COL1, '/'))
FROM (SELECT A.COL1,
ROW_NUMBER() OVER(ORDER BY A.COL1) AS curr,
ROW_NUMBER() OVER(ORDER BY A.COL1) - 1 AS prev
FROM (SELECT DISTINCT TAB2.COL1
FROM TABLE2 TAB2
WHERE TAB2.USER_ID = TAB1.USER_ID) A) B
CONNECT BY PRIOR curr = prev
START WITH curr = 1)
FROM TABL1 TAB1
WHERE TAB1.REC_STATUS = 'L'
我有2张桌子TABLE1& TABLE2。它们都有一个共同的属性USER_ID。我正在选择基于USER_ID的值,并将结果行视为表本身(称为A)。但是,查询无法引用在A外部创建的TABLE1。 此查询实际上连接了返回的所有与USER_ID条件匹配的COL1值。当我使用Oracle 9i时,唯一可用的字符串连接是WM_CONCAT。我被告知不要使用它,因为这个功能没有记录。
请帮助我如何能够在A区块内引用TAB1的列(在本例中为USER_ID)。
感谢任何帮助。
提前致谢
答案 0 :(得分:0)
你这样做是错误的。
子查询不能引用外部查询。只有嵌套查询(例如,使用Exists创建)可以在内部查询中使用外部查询的属性。
在内部查询中使用外部参数的示例。
SELECT * FROM R S WHERE EXISTS (SELECT * FROM R WHERE R.a = S.a)