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

Unione di due righe in una durante la sostituzione di valori null

La soluzione più semplice:

SQL> select * from t69
  2  /

NAME       NICKNAME           ID
---------- ---------- ----------
Joe        Joey               14
Joe                           14
Michael                       15
           Mick               15
           Mickey             15

SQL> select max(name) as name
  2         , max(nickname) as nickname
  3         , id
  4  from t69
  5  group by id
  6  /

NAME       NICKNAME           ID
---------- ---------- ----------
Joe        Joey               14
Michael    Mickey             15

SQL>

Se hai 11gR2 puoi usare la nuova funzione LISTAGG() ma per il resto è abbastanza semplice racchiudere l'istruzione sopra in un SELECT che concatena le colonne NAME e NICKNAME.