Consulta principal select junto con subconsulta que tiene “select * de dual”.
Tengo la siguiente consulta que tiene una subconsulta para seleccionar de ‘dual’. Ambos resultados de la consulta principal y la subconsulta deben mostrarse en la salida.
SELECT
a.ROW_EXISTS AS CLIENT_EXIST,
c.AP_Before AS AP_before,
c.AP_TIMESTAMP AS AP_TIMESTAMP,
cd.AAM_FLAG AS AAM_FLAG,
cd.SSM_FLAG AS SSM_FLAG
FROM
(
select
case when exist (select 1 from c.clients where client_id='c-001' then 'Y' else 'N' end as ROW_EXISTS
from dual
) AS a
INNER JOIN CLIENT_DYN cd ON c.CLIENT_ID = cd.CLIENT_ID
WHERE c.CLIENT_ID = 'c-001';
Se encuentra un error ORA-00933: SQL command not properly ended
cerca de la línea ) AS A
cuando se ejecuta la consulta.
davy.ai
Hay un error de sintaxis en la consulta proporcionada. La consulta correcta debería ser la siguiente:
El problema estaba en la ubicación del alias para la subconsulta. Debe colocarse después del paréntesis de cierre de la subconsulta, no antes de él. Además, la sintaxis para la instrucción
case
de la subconsulta era incorrecta: la funciónexist
debería serexists
, y el paréntesis de cierre estaba en el lugar equivocado.Con la consulta corregida, se ejecutarán tanto la consulta principal como la subconsulta y se mostrarán los resultados en la salida. La subconsulta devolverá una sola fila con ‘Y’ o ‘N’ en la columna
ROW_EXISTS
, dependiendo de si existe un cliente con ID ‘c-001’ en la tablac.clients
. La consulta principal recuperará columnas adicionales de la tablaCLIENT_DYN
para el cliente coincidente.