在Oracle SQL语句中构建以逗号分隔的值列表

VBA*_*ole 1 oracle select-into

我正在尝试从Oracle中的字段构建以逗号分隔的值列表.

我找到了一些示例代码:

DECLARE @List VARCHAR(5000)
SELECT @List = COALESCE(@List + ', ' + Display, Display)
FROM TestTable
Order By Display
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试时,我总是得到关于FROM关键字的错误,而不是它是预期的.我可以使用SELECT INTO并且它可以工作,但如果我有多行,我会得到提取错误.

为什么我不能这样做:

SELECT myVar = Field1
FROM myTable
Run Code Online (Sandbox Code Playgroud)

Jus*_*ave 7

在Oracle中,您将使用Tim Hall在此页面上收集的众多字符串聚合技术之一.

如果您使用的是11.2,

SELECT LISTAGG(display, ',') WITHIN GROUP (ORDER BY display) AS employees
  INTO l_list
  FROM TestTable
Run Code Online (Sandbox Code Playgroud)

在早期版本中,我的偏好是使用用户定义的聚合函数方法(Tim的调用string_agg)来做

SELECT string_agg( display )
  INTO l_list
  FROM TestTable
Run Code Online (Sandbox Code Playgroud)