对于 XML 路径,回车返回 Excel



我正在寻找SSMS(SQL Server 2014(查询.csv输出,该查询将值连接到Excel的一个单元格中。 下面的代码将分号作为分隔符,但我想放入 Excel 的回车符,以便每个值都在单元格内自己的行上。 (现在我用 Excel 搜索分号手动执行此操作并替换为 CHAR(10((。 如何在下面更改此设置以在 Excel 的文本文件中提供带有回车符的字符串而不是分号? (我继承了这段代码,所以我无法解释它——我只知道它现在可以工作了,但我需要改变它。


SELECT effworkruleid, 
REPLACE(Stuff((SELECT ', ' + zonename 
FROM   _pcr_Zones1 
WHERE  effworkruleid = T.effworkruleid 
FOR xml path('')), 1, 1, ''), ',', ';')
FROM   (SELECT DISTINCT effworkruleid 
FROM   _pcr_Zones1) T 

下面的 SQL 怎么样...

.SQL

-- DDL and sample data population, start
DECLARE @tbl TABLE (effworkruleid int, zonename VARCHAR(30));
INSERT   INTO @tbl (effworkruleid, zonename)
VALUES (333, 'g')
,(333 , 'f')
,(333 , 'y')
,(222 , 'x')
,(222 , 'y')
,(222 , 'z')
,(111 , 'E')
,(111 , 'F')
,(444 , 'L');
-- DDL and sample data population, end
DECLARE @separator CHAR(1) = ','
, @Lf CHAR(1) = CHAR(10);
SELECT DISTINCT c.effworkruleid
, REPLACE(
STUFF((SELECT CONCAT(@separator, CAST(zonename AS VARCHAR(30))) AS [text()]
FROM @tbl AS O
WHERE O.effworkruleid = C.effworkruleid 
ORDER BY effworkruleid, zonename ASC
FOR XML PATH('')), 1, 1, NULL), @separator, @Lf)
AS zonename_List
FROM @tbl AS C;

最新更新