Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Unterabfrage gibt mehr als eine Zeile zurück

Sie müssen eine Aggregation verwenden, um Zeilen zu kombinieren. Sie können nicht alle Zeilen in einer Zelle anzeigen. LISTAGG ist also das, wonach Sie suchen, um Zeichenfolgen zu verketten.

Hier ist eine Beispielabfrage:

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