Oracle
 sql >> Database >  >> RDS >> Oracle

la sottoquery restituisce più di una riga

È necessario utilizzare un'aggregazione per combinare le righe. Non puoi mostrare tutte le righe in una cella. Quindi, LISTAGG è ciò che stai cercando per concezionare stringhe.

Ecco una query di esempio:

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