我的数据表如下:
",".join("15, 14, 12, 9, 5".split()[::-1]).replace(",,",",")
说我想创建一个新列,为不同的用户提供逗号分隔符。
我希望最终看起来像这样
╔════════╦══════════════╦════════════╦
║BatchID ║ CreateUser ║ ChangeUser ║
╠════════╬══════════════╬════════════╬
║ 1 ║ xxx ║ yyy ║
║ 1 ║ zzz ║ zzz ║
║ 2 ║ aaa ║ aaa ║
║ 3 ║ bbb ║ Null ║
║ 4 ║ ccc ║ ddd ║
╚════════╩══════════════╩════════════╩
我应该如何编写查询?
答案 0 :(得分:0)
您可以使用LISTAGG功能-
SELECT BatchID , LISTAGG(CreateUser, ',') UserName
FROM (SELECT BatchID, CreateUser
FROM YOUR_TAB
WHERE CreateUser IS NOT NULL
UNION
SELECT BatchID, ChangeUser
FROM YOUR_TAB
WHERE ChangeUser IS NOT NULL)
GROUP BY BatchID