我正在尝试编写一个SQL语句,它在Oracle中多次重用With子句的子查询.
With mySubQ as ( ... ) Select Something From SomeTable, ( Select * From mySubQ where mySubQ.Something >= 0 ) newSubQ where mySubQ.Something = SomeTable.Something
这给了我错误 - ORA-32034不支持使用WITH子句
我错过了什么?
您需要加入mySubQ
,而不仅仅是定义它.
WITH mySubQ AS (...) SELECT Something FROM SomeTable JOIN mySubQ ON mySubQ.Something = SomeTable.Something WHERE mySubQ.Something >= 0
如果将查询mySubQ
放在子查询中,则无法mySubQ
在WHERE
主查询的子句中引用.每个级别的查询只能访问自己FROM
和JOIN
子句中的表,而不能访问子查询中的表.