在 Microsoft SQL Server (T-SQL) 中,有一种简洁、优雅且高性能的面向集合的方法来使用表中多行的值串联填充 VARCHAR 变量,即:
DECLARE @vals NVARCHAR(MAX)
SELECT @vals = ISNULL(@vals + ',', '')
+ <some_varchar_column>
FROM <some_table>
使用 some_table
的所有行中 some_column
中所有值的逗号分隔字符串填充 @vals
(例如,“value1,value2 ,value3, ...").
如何以同样优雅的方式(无需编写循环/游标)在 Oracle PL/SQL 中执行类似的操作?
最佳答案
这个?
SQL> select listagg(dname, ',') within group (order by dname) result
2 from dept;
RESULT
-------------------------------------------------------------------------
ACCOUNTING,OPERATIONS,RESEARCH,SALES
SQL>
关于sql - PL/SQL 等效于 T-SQL 面向集合的变量串联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63712357/