1234 NULL
1234 HELLO EVERYBODY
7895 NULL
我希望结果像
1234 hello everybody,null
7895 null
我已经尝试在oracle中使用listagg(nvl(col,' NULL')),但它没有用。 请帮帮我。
答案 0 :(得分:1)
SQL> WITH DATA AS(
2 SELECT 1234 ID, NULL txt FROM dual UNION ALL
3 SELECT 1234 ID, 'HELLO EVERYBODY' txt FROM dual UNION ALL
4 SELECT 7895 ID, NULL txt FROM dual)
5 SELECT ID, LISTAGG(nvl(txt,'NULL'), ',')
6 WITHIN GROUP (ORDER BY ID) list_agg
7 FROM DATA
8 GROUP BY ID
9 /
ID LIST_AGG
-------------------- ------------------------------
1234 HELLO EVERYBODY,NULL
7895 NULL
SQL>
编辑 WITH
子句是为了演示而构建示例表。在您的数据库中,您只需使用DATA
重命名table name
,然后执行select listagg..
查询。
所以,你的最终查询看起来像,
SELECT column_1,
LISTAGG(nvl(column_2,'NULL'), ',')
WITHIN GROUP (ORDER BY column_1) list_agg
FROM table_name
GROUP BY column_1
/