sql >> Base de Datos >  >> RDS >> Oracle

la subconsulta devuelve más de una fila

Debe usar una agregación para combinar filas. No puede mostrar todas las filas en una celda. Entonces, LISTAGG es lo que está buscando para concentrar cadenas.

Aquí hay una consulta de ejemplo:

SELECT  
NVL(TO_CHAR(TRANS.ID), 'NULL') AS ID, 
'HEADER',
NVL(
    TO_CHAR(
            (
                SELECT LISTAGG ( L_APP.DESCRIPTION ,',' ) 
                FROM  L_APP 
                WHERE  EXISTS  ( 
                                SELECT 1 
                                FROM TRANS 
                                WHERE L_APP.APP =                  TRANS.APP AND LANGUAGE = 2
                            )

           )
        ), 'NULL'
) AS KEY_EVENT