sql >> Database >  >> RDS >> Oracle

Twee rijen samenvoegen tot één terwijl u null-waarden vervangt

Eenvoudigste oplossing:

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>

Als je 11gR2 hebt, zou je de nieuwerwetse LISTAGG()-functie kunnen gebruiken, maar verder is het eenvoudig genoeg om de bovenstaande instructie in een SELECT te plaatsen die de kolommen NAME en NICKNAME samenvoegt.



  1. Hoe MySQL/MariaDB-servers te beveiligen

  2. Een dynamisch gegenereerde draaitabel in een tijdelijke tabel krijgen

  3. Alleen maand en jaar krijgen van SQL DATE

  4. PostgreSQL:hoe te converteren van Unix-tijdperk tot nu toe?