Oracle SQL 添加撇号

Oracle SQL add apostrophes

有没有办法处理 SQL oracle 字符串中的 apostrophes/multiples 引号? 我尝试使用 listagg 但只能添加逗号而不是 apostrophes/multiples 引号。 目标是将用户添加到另一个 SQL Table -> IN Operator

示例:

select LISTAGG(username, ',') WITHIN GROUP (ORDER BY username) "USERNAME" from user

当前输出:james, arthur, peter, gina, lehner

目标:'james', 'arthur', 'peter', 'gina', 'lehner'

有什么建议吗?

试试这个

select LISTAGG(''''||username||'''', ',') WITHIN GROUP (ORDER BY username) "USERNAME" from user

您可以在对列应用 window 函数之前对列应用任何行函数(例如串联):

SELECT LISTAGG('''' || username || '''', ',') WITHIN GROUP (ORDER BY username) "USERNAME"
FROM   user

最简单的解决方案是在分隔符中添加撇号并添加前导和尾随撇号

 select ''''||listagg(username,q'[', ']') within group (order by username)||'''' as txt from names

给予

 'ames', 'arthur', 'gina', 'lehner', 'peter'