如何在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;

DBFiddle Demo

关于sql - 在Oracle中使用LISTAGG进行字符串格式化。转义单引号 ` '`,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48266756/

10-11 13:31