admin

在Oracle中使用LISTAGG进行字符串格式化。转义单引号`'`

sql

如何在Oracle中格式化listagg的输出以产生输出(单引号中的每个字段)为'student1', 'student2', 'student3'
我已经阅读了有关listagg的文档和其他问题,但找不到太多。
SQL查询可连接Oracle中多个行的列值

SELECT LISTAGG(student_name,',')  WITHIN GROUP (ORDER BY student_name)
from students

谢谢


阅读 255

收藏
2021-06-07

共1个答案

admin

您可以使用:

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演示

2021-06-07