需要将多行中的一列值合并为一行

时间:2019-08-22 17:55:15

标签: sql teradata

我正在尝试创建有关Teradata安全性(DBC.ALLRIGHTS)的报告。当用户拥有多个权限时,我想将这些权限分组为一行。

这些行:

  • DatabaseX TableX Dave A
  • DatabaseX TableX Dave C
  • DatabaseX TableX Dave D
  • DatabaseX TableX Dave R

将这样组合:

  • DatabaseX TableX Dave A,C,D,R

1 个答案:

答案 0 :(得分:2)

您可以为此使用XMLAgg

select
databasename,
tablename,
username,
TRIM(TRAILING ',' FROM (XMLAGG(TRIM(AccessRight)|| ',' ORDER BY AccessRight) 
 (VARCHAR(10000))))
from
dbc.allrights
group by 1,2,3