在sql resultat:db2中将具有相同id的相同记录合并在一起

yduiuuwa  于 2022-11-23  发布在  DB2
关注(0)|答案(1)|浏览(240)

假设我有一个包含以下信息的表:

ID        NAME     Boss           Main responsibility
      01        Tommy     x3             Yes
      02        Elis      x2             Yes
      02        Elis      x3             No
      03        John      x65            yes
      04        Lille     x50            yes

是否有一种方法可以在表上执行select以获得以下内容(sql:DB2)

ID        NAME        main responsibility
      01        Tommy                X3   
      02        Elis                 X2(main responsibility) AND X3   
      03        John                 X65
      04        Lille                x50

谢谢

zlhcx6iw

zlhcx6iw1#

如果您的DB2版本支持它,则可以聚合并使用LISTAGG()函数:

SELECT
    ID,
    NAME,
    LISTAGG(CONCAT(Boss, CASE WHEN main = 'Yes' THEN ' (main)' ELSE '' END), ', ')
        WITHIN GROUP(ORDER BY main DESC) AS main
FROM yourTable
GROUP BY ID, NAME
ORDER BY ID;

相关问题