如何格式化Oracle中listagg的输出以生成输出(单引号中的每个字段)为'student1', 'student2', 'student3'
。
我已经阅读了listagg上的文档和其他问题,但找不到多少。 SQL Query to concatenate column values from multiple rows in Oracle
SELECT LISTAGG(student_name,',') WITHIN GROUP (ORDER BY student_name)
from students
谢谢
你可以使用:
SELECT LISTAGG('''' || student_name || '''',',')
WITHIN GROUP (ORDER BY student_name)
FROM students;
或使用ENQUOTE_LITERAL
函数:
SELECT LISTAGG(DBMS_ASSERT.ENQUOTE_LITERAL(student_name),',')
WITHIN GROUP (ORDER BY student_name) AS r
FROM students;
这应该做的工作。你需要在查询中转义'
。
SELECT LISTAGG('''' || student_name || '''',', ') WITHIN GROUP (ORDER BY student_name)
FROM students