You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用STRING_AGG实现带首尾引号的文本元素拼接?

调整SQL查询结果的引号格式

现有查询语句

select  
    (
        SELECT  STRING_AGG(TRIM(innerAgg.Result), '" - "')
        FROM
        (
            SELECT  DISTINCT
                value
            FROM    STRING_SPLIT(STRING_AGG(t1.[Sample Values], '-'), '-')
        ) AS innerAgg(Result)
    ) as [Sample Values]
from 
(
    select
        'abc' as [Sample Values]
    union all
    select
        'def'
    union all
    select
        'ghi'
) t1

当前返回结果

abc" - "def" - "ghi

期望返回结果

"abc" - "def" - "ghi"

修改方案

原查询仅在元素之间添加了带引号的分隔符,但没有给每个元素本身包裹首尾引号。只需调整内层STRING_AGG的逻辑:先给每个innerAgg.Result前后拼接",再用' - '作为分隔符拼接即可。

修改后的完整查询

select  
    (
        SELECT  STRING_AGG('"' + TRIM(innerAgg.Result) + '"', ' - ')
        FROM
        (
            SELECT  DISTINCT
                value
            FROM    STRING_SPLIT(STRING_AGG(t1.[Sample Values], '-'), '-')
        ) AS innerAgg(Result)
    ) as [Sample Values]
from 
(
    select
        'abc' as [Sample Values]
    union all
    select
        'def'
    union all
    select
        'ghi'
) t1

这样每个值都会被双引号包裹,再用-连接,最终就能得到目标格式的结果。

内容的提问来源于stack exchange,提问作者Philip

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 08:22:13