代码之家  ›  专栏  ›  技术社区  ›  Melad Basilius

Oracle DB,使用“,”分隔符[重复]从1列中concat所有值

  •  0
  • Melad Basilius  · 技术社区  · 4 年前

    我有一个带1列的Oracle DB表 UUID

    enter image description here

    如何连接所有 一个字符串中由分隔的值 ","

    "id1","id2","id3","id4"....
    
    2 回复  |  直到 4 年前
        1
  •  1
  •   GMB    4 年前

    你可以用 listagg() :

    select listagg(uuid, ',') within group(order by uuid) uuids
    from mytable
    

    uuid s、 用逗号分隔。

    请注意 列表聚合() varchar ,因此输出不能超过4000字节。

    • 逗号是默认的分隔符,因此在您的情况下,不必向函数传递第二个参数

    • 我加了一个 order by 子句以生成确定性结果:此选项不是必需的,因此如果列表中项目的顺序对您不重要,则可以将其分开(在这种情况下,您将得到 uuid公司 以未定义的顺序)

        2
  •  1
  •   Gordon Linoff    4 年前

    listagg() --假设没有太多的值。最大字符串大小为4000字节。

    selest '"' || listagg(uuid, '","') within group (order by uuid) || '"'