我正在从SQL数据生成一个XML文件。XML中的标记之一是多个SQL列的连接。我需要在每个列值之间插入一个换行符(所有值仍然在同一个XML标记中,但用换行符分隔。但是,我无法插入这些换行符。我的SQL看起来像这样:
DECLARE @FreeFormColumns nvarchar(max);
SET @FreeFormColumns = STUFF ((
SELECT ', ' + COLUMN_NAME
FROM
tblColumnNames
FOR XML PATH('')),
1,1, 11)
SET @SQLString = 'select CONCAT(' + @FreeFormColumns + ') AS FRF
from tblMaintblColumnNames中的Key:COLUMN_NAME包含tblMain中的列的名称
有人能帮个忙吗?
提前谢谢你!
发布于 2016-11-12 00:33:19
可以使用CHAR(10)插入换行符。CHAR(13)用于回车。
DECLARE @FreeFormColumns nvarchar(max);
SET @FreeFormColumns = STUFF ((
SELECT ', ' + COLUMN_NAME + CHAR(10)
FROM
tblColumnNames
FOR XML PATH('')),
1,1, 11)
SET @SQLString = 'select CONCAT(' + @FreeFormColumns + ') AS FRF
from tblMain'发布于 2016-11-13 02:05:24
这个怎么样?这将选择附加了换行符的值。我不知道这会给你带来什么,但不管怎样,这是一个尝试。
DECLARE @FreeFormColumns nvarchar(max);
SET @FreeFormColumns = STUFF ((
SELECT ','+QUOTENAME(COLUMN_NAME)+'='+QUOTENAME(COLUMN_NAME)+'+CHAR(10)+CHAR(13)'+
FROM
tblColumnNames
FOR XML PATH(''), TYPE).value(N'.[1]', N'NVARCHAR(MAX)'),
1,1, 11);https://stackoverflow.com/questions/40552121
复制相似问题