ORA-00918 未明确定义列,with t as 后面只能跟select

今天在with t as 作为临时表时报了这个错误,查了下原来是列名重复造成的

WITH  t AS (SELECT a.*,1 empno FROM emp a) SELECT * FROM t;

定义为不同的列即可。

另外 with t as 后面必须紧跟select语句,而不態使用update,delete,merge 等语句


如果with t as 后面跟的是union all之类的运算,最终结果集的列明将由unino all首个数据源的列

别名确定

select 1 id,
       12 a,
       13 b 
from dual
union all
select 2,

       8,
       -2
from dual

你可能感兴趣的:(ORA-00918 未明确定义列,with t as 后面只能跟select)