sql >> Databasteknik >  >> RDS >> Oracle

subquery returnerar mer än en rad

Du måste använda en aggregering för att kombinera rader. Du kan inte visa alla rader i en cell. Så, LISTAGG är vad du letar efter för att sammanfoga strängar.

Här är ett exempel på en fråga:

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


  1. Gå med i tre bord med MySQL

  2. Bästa praxis för att lagra användarnamn och lösenord i MySQL-databaser

  3. Formatera SQL-tabelldata som texttabell

  4. SQL Server-tabeller namngivna med dbo-schema