【问题标题】:SQL Server 2008 XML Path - separated list using newline instead of semicolonSQL Server 2008 XML 路径 - 使用换行符而不是分号分隔列表
【发布时间】:2015-09-17 18:20:57
【问题描述】:

我有一个 SSRS 报告,它使用以下查询列出逗号分隔的名称:

Select distinct 
    ST2.Country, st2.Location, st2.[Group], 
    substring(
    (
            Select ';'+ST1.[Sponsor]  AS [text()]
            From tbl_de_list ST1
            Where ST1.[W ID] = ST2.[W ID]            
            For XML PATH ('')
     ), 2, 1000) [sponsor]
From 
    tbl_de_list ST2
order by 
    st2.[W ID]

从 ssrs 报告导出时,我需要将其放在新行上。

这就是我所拥有的:

first name, last name ; first name, last name

我需要什么(单列):

first name, last name
first name, last name

【问题讨论】:

    标签: sql reporting-services substring


    【解决方案1】:

    在对 Google 进行了一些研究之后,我调整了查询​​以添加空格而不是分号作为分隔符。

    DECLARE @NewLineChar AS CHAR(2) = CHAR(13) + CHAR(10)
    Select distinct ST2.Country, st2.Location,st2.[Group], 
    substring(
        (
            Select ';'+ST1.[Sponsor]  AS [text()]
            From tbl_de_list ST1
            Where ST1.[W ID] = ST2.[W ID]            
            For XML PATH ('')
        ), 2, 1000),';',@NewLineChar) [Sponsor]
    From tbl_de_list ST2
    order by st2.[W ID]
    

    当您将报告导出到 excel/csv 时,它会被推送到新的一行。

    【讨论】:

    • 很高兴您找到了答案!不要忘记accept your own answer - 这将有助于未来的搜索者发现这个问题有解决方案。对此有 48 小时的等待期,因此请过几天再回来查看,然后单击此答案旁边的复选标记。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-08
    相关资源
    最近更新 更多