使用Oracle中的LISTAGG进行字符串格式化。逃避单引号''`

时间:2018-01-15 16:12:28

标签: sql oracle string-aggregation

如何格式化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

由于

2 个答案:

答案 0 :(得分:3)

您可以使用:

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;

<强> DBFiddle Demo

答案 1 :(得分:1)

这应该可以胜任。您需要转义查询中的clearInterval

'