我的查询结果是多个查询的并集.当我在联合中使用WITH子句时,我面临以下错误.有什么想法吗?
select column1 from TABLE_A
union
with abcd as (select * from TABLE_B)
select column2 from TABLE_A A, abcd
where abcd.m_reference = A.m_reference
Run Code Online (Sandbox Code Playgroud)
ORA-32034:不支持使用WITH子句
32034. 00000 - "不支持使用WITH子句"
*原因:由于以下两个原因之一而不合适地使用WITH子句
1.不支持在WITH子句内嵌套WITH子句
2.对于设置查询时,不能为分支指定WITH子句.
3. WITH子句不能在括号内指定.
*操作:正确查询并重试
小智 8
在虚拟选择中封装您的WITH语句.
select column1 from TABLE_A
union
select * from (
with abcd as (select * from TABLE_B)
select column2 from TABLE_A A, abcd
where abcd.m_reference = A.m_reference
)
Run Code Online (Sandbox Code Playgroud)
只需在实际UNION查询之前定义CTE .然后像使用普通表一样使用它:
with abcd as (select * from TABLE_B)
select column1 from TABLE_A
union
select column2
from TABLE_A A
inner join abcd
on abcd.m_reference = A.m_reference
Run Code Online (Sandbox Code Playgroud)
您可以使用多个CTE,如下所示:
with cte1 AS (...),
cte2 AS (...)
select * from ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6938 次 |
| 最近记录: |