Sql 如何访问内部查询列

Sql 如何访问内部查询列,sql,oracle,Sql,Oracle,我需要在update语句中使用此查询 UPDATE RUN_RESULT SET UNQKEY = ( select UNQKEY_VALUE from ( select distinct RUN_ID, TOCID, 'UNQKEY' || r as UNQKEY ,

我需要在update语句中使用此查询

UPDATE RUN_RESULT 
SET UNQKEY = ( 
                select UNQKEY_VALUE 
                from ( 
                  select distinct RUN_ID,
                           TOCID, 
                         'UNQKEY' || r as UNQKEY , 
                           TOCNAME,
                           UNIQUENESS_COLUMN_ID, 
                         DECODE( r, 1, UNQKEY1, 2, UNQKEY2, 3, UNQKEY3, 4, UNQKEY4 , 5, UNQKEY5) AS UNQKEY_VALUE 
                  from TOC TOC,
                    RULE RL, 
                     RUN_RESULT RR,
                   (select rownum r 
                      from all_objects 
                      where rownum <=5) 
                WHERE RL.RULE_SET_ID=RR.RULE_SET_ID 
                AND TOC.TOCID= RR.TOC_ID ) t 
          WHERE UNIQUENESS_COLUMN_ID like UNQKEY
          and UNQKEY_VALUE IS NOT NULL ) 
      Where ????? 

我必须使用内部查询列,如RUN_ID、TOCID、如何在内部查询列中访问

您介意格式化您的问题,以便我们可以实际阅读它吗?您所说的内部查询列中的访问是什么意思。你到底想在这里实现什么?你只是想在最后一个WHERE子句中使用t.RUN\u ID和t.TOCID吗?为什么您需要它,而不在内部查询中进行筛选?您不能这样做。您需要重新构造查询。参考如果可以连接到内部查询而不是从中选择,则可以访问外部查询中的所有列。