Merging two rows to one while replacing null values

后端 未结 2 1418
不思量自难忘°
不思量自难忘° 2020-12-15 23:20

Let\'s say I\'ve got the following database table

Name | Nickname | ID
----------------------
Joe    Joey       14
Joe    null       14

Now

2条回答
  •  执笔经年
    2020-12-15 23:44

    Simplest solution:

    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>
    

    If you have 11gR2 you could use the new-fangled LISTAGG() function but otherwise it is simple enough to wrap the above statement in a SELECT which concatenates the NAME and NICKNAME columns.

提交回复
热议问题