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, '')+'; '
这将在字符串中正确引入必要的换行符。
请注意,当您在 SSMS 中 运行 此查询时,您可能看不到正确的结果,因为通常结果显示在网格视图中,如下所示
要获得正确的视图,您应该将查询结果更改为文本视图,方法是按 cntrl+ t 或单击“查询选项”从顶部菜单(见下面的截图)
最后,您的查询将为您提供正确的结果视图,如下所示
借助 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, '')+'; '
这将在字符串中正确引入必要的换行符。
请注意,当您在 SSMS 中 运行 此查询时,您可能看不到正确的结果,因为通常结果显示在网格视图中,如下所示
要获得正确的视图,您应该将查询结果更改为文本视图,方法是按 cntrl+ t 或单击“查询选项”从顶部菜单(见下面的截图)
最后,您的查询将为您提供正确的结果视图,如下所示