portable - sql developer oracle 12c
¿Podemos tener múltiples "WITH AS" en sql único? Oracle SQL (4)
Aditya u otros, ¿puedes unirte o emparejar t2 con t1 en tu ejemplo, es decir, traducirlo a mi código,
with t1 as (select * from AA where FIRSTNAME like ''Kermit''),
t2 as (select * from BB B join t1 on t1.FIELD1 = B.FIELD1)
No estoy seguro si solo DONDE se admite para unirse, o qué enfoque de unión se admite dentro de la segunda entidad CON. Algunos de los ejemplos tienen DONDE A = B abajo en el cuerpo de las cláusulas selectas "debajo" de CON.
El error que obtengo después de estas declaraciones WITH es que los identificadores (nombres de campo) en B no se reconocen, en el cuerpo del resto del SQL. Entonces, la sintaxis de WITH parece ejecutarse bien, pero no puede acceder a los resultados de t2.
Tenía una pregunta muy simple: ¿Oracle permite múltiples "WITH AS" en una única instrucción sql.
Ejemplo:
WITH abc AS( select ......)
WITH XYZ AS(select ....) /*This one uses "abc" multiple times*/
Select .... /*using XYZ multiple times*/
Puedo hacer que la consulta funcione repitiendo la misma consulta varias veces, pero no quiero hacer eso, y aprovecho "WITH AS". Parece un requisito simple, pero el oráculo no me permite:
ORA-00928: palabra clave SELECT que falta
Puedes hacer esto como:
WITH abc AS( select
FROM ...)
, XYZ AS(select
From abc ....) /*This one uses "abc" multiple times*/
Select
From XYZ.... /*using abc, XYZ multiple times*/
Sí tu puedes...
WITH SET1 AS (SELECT SYSDATE FROM DUAL), -- SET1 initialised
SET2 AS (SELECT * FROM SET1) -- SET1 accessed
SELECT * FROM SET2; -- SET2 projected
10/29/2013 10:43:26 AM
Siga el orden en el que debe inicializarse en Expresiones de tabla comunes
la sintaxis correcta es -
with t1
as
(select * from tab1
where conditions...
),
t2
as
(select * from tab2
where conditions...
(you can access columns of t1 here as well)
)
select * from t1, t2
where t1.col1=t2.col2;