Oracle
 sql >> Base de données >  >> RDS >> Oracle

la sous-requête renvoie plus d'une ligne

Vous devez utiliser une agrégation pour combiner des lignes. Vous ne pouvez pas afficher toutes les lignes dans une cellule. Ainsi, LISTAGG est ce que vous recherchez pour concaténer des chaînes.

Voici un exemple de requête :

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