Oracle DB,使用“,”分隔符连接 1 列中的所有值
Oracle DB, concat all values from 1 column using "," separator
我的 Oracle 数据库 table 有 1 列 UUID
如何将所有 UUID
值连接到一个由 ","
分隔的字符串中,以便输出类似于
"id1","id2","id3","id4"....
您可以使用 listagg()
:
select listagg(uuid, ',') within group(order by uuid) uuids
from mytable
这将为您提供一个单列记录,其中包含所有 uuid
,用逗号分隔。
注意listagg()
returns一个varchar
,因此输出不能超过4000字节。
另请注意:
逗号是默认分隔符,因此在您的情况下,并非绝对有必要将第二个参数传递给函数
我添加了一个 order by
子句以生成确定性结果:此选项不是强制性的,因此如果列表中项目的顺序对您来说不重要,那么您可以将其分开(在这种情况下,您将以未定义的顺序获得 uuid
s)
您可以使用 listagg()
-- 假设没有太多值。最大字符串大小为 4000 字节。
selest '"' || listagg(uuid, '","') within group (order by uuid) || '"'
我的 Oracle 数据库 table 有 1 列 UUID
如何将所有 UUID
值连接到一个由 ","
分隔的字符串中,以便输出类似于
"id1","id2","id3","id4"....
您可以使用 listagg()
:
select listagg(uuid, ',') within group(order by uuid) uuids
from mytable
这将为您提供一个单列记录,其中包含所有 uuid
,用逗号分隔。
注意listagg()
returns一个varchar
,因此输出不能超过4000字节。
另请注意:
逗号是默认分隔符,因此在您的情况下,并非绝对有必要将第二个参数传递给函数
我添加了一个
order by
子句以生成确定性结果:此选项不是强制性的,因此如果列表中项目的顺序对您来说不重要,那么您可以将其分开(在这种情况下,您将以未定义的顺序获得uuid
s)
您可以使用 listagg()
-- 假设没有太多值。最大字符串大小为 4000 字节。
selest '"' || listagg(uuid, '","') within group (order by uuid) || '"'