SQL XML 路径的服务器 - 使用集成服务将数据导出到 excel

SQL SERVER FOR XML PATH - Exporting data to excel using Integration Services

借助 SO 和以下代码:

select t1.*,
       stuff( (select '; ' + coalesce(data1, '') + ',' + coalesce(data2, '')
               from table2 t2
               where t2.FK_TBL1_ID = t1.id
               for xml path ('')
              ), 1, 2, ''
            ) as Data1Data2
from table1 t1;

我在 sql 视图中成功地将多行多列合并为一行一列。

我最终想要实现的是,当在 excel 单元格中查看时,能够将每一行与多列组合在一起,为新记录(行)换行:

**Data1Data2Cell**

  aaaa, bbbb; 
  cccc, dddd;
    ....

在每个单元格上使用 ALT+ENTER 可以在 Excel 中实现相同的功能。

我尝试使用 Char(10) 和 Char(13) 无济于事。

您应该将 STUFF 的第一行更改为此

 stuff( (select CHAR(10)+ coalesce(data1, '') + ',' + coalesce(data2, '')+'; '

这将在字符串中正确引入必要的换行符。

working demo here

请注意,当您在 SSMS 中 运行 此查询时,您可能看不到正确的结果,因为通常结果显示在网格视图中,如下所示

要获得正确的视图,您应该将查询结果更改为文本视图,方法是按 cntrl+ t 或单击“查询选项”从顶部菜单(见下面的截图)

最后,您的查询将为您提供正确的结果视图,如下所示