在 Oracle 中使用 LISTAGG 进行字符串格式化。转义单引号 ` ' `
String formatting using LISTAGG in Oracle. Escaping single quote ` ' `
如何在 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
如何在 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