使用 For XML 路径将信息连接到一个单元格中的 STUFF 命令的格式化结果
Formatting Results of STUFF command that uses For XML Path to concatenate the information into one cell
我正在使用 STUFF 命令从一列中提取数据并将它们连接到一个单元格中。
STUFF((Select CAST(v.ID as VARCHAR)+ ', '
From Source
Where CriteriaIsMet
For XML Path('')),1,0,'') as MonitorID
我想要完成的是在最后格式化结果。上面代码的结果是这样的:
12345, 23456, 34567, 456789,
我正在寻找带有换行符的代码。我希望它们都仍然在同一个单元格中并且没有被分解但是当放置在 Excel 中时我希望得到这样的结果:
12345,
23456,
34567,
45678,
我试过使用:
STUFF((Select REPLACE(CAST v.ID as VARCHAR) + ', ' , ', ', +CHAR(13))
但是最终结果并没有给我我想要的东西我最终得到了这个:
123456
234567
我认为我需要在语句末尾做一些事情来实现这一点,但是,我不确定如何完成它,因为我正在使用:
For XML Path('')),1,0,'')
我希望有人能有一个简单的解决办法。如有任何帮助,我将不胜感激。请注意,我试图将数据保存在同一个单元格中。此数据拉取的最终结果进入 Excel 中的 Pivot table,我希望数字垂直显示而不是水平显示。当水平显示时,数字会在超过单元格长度后被截断。
试试这个...
SELECT STUFF((Select CAST(v.ID as VARCHAR(30)) + + ', '+ CHAR(10)
From Source
Where CriteriaIsMet
For XML Path(''),TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'') as MonitorID
而不是添加 CHAR(13)
and/or CHAR(10)
,CHAR(9)
水平 TAB 对我有用。完整的 STUFF 参数和其他可能的大文本字段也应转换为 varchar(255)
.
应该是这样的:SELECT CAST(STUFF((...) + CHAR(9) as varchar(255)) as MonitorID
我正在使用 STUFF 命令从一列中提取数据并将它们连接到一个单元格中。
STUFF((Select CAST(v.ID as VARCHAR)+ ', '
From Source
Where CriteriaIsMet
For XML Path('')),1,0,'') as MonitorID
我想要完成的是在最后格式化结果。上面代码的结果是这样的:
12345, 23456, 34567, 456789,
我正在寻找带有换行符的代码。我希望它们都仍然在同一个单元格中并且没有被分解但是当放置在 Excel 中时我希望得到这样的结果:
12345,
23456,
34567,
45678,
我试过使用:
STUFF((Select REPLACE(CAST v.ID as VARCHAR) + ', ' , ', ', +CHAR(13))
但是最终结果并没有给我我想要的东西我最终得到了这个:
123456
234567
我认为我需要在语句末尾做一些事情来实现这一点,但是,我不确定如何完成它,因为我正在使用:
For XML Path('')),1,0,'')
我希望有人能有一个简单的解决办法。如有任何帮助,我将不胜感激。请注意,我试图将数据保存在同一个单元格中。此数据拉取的最终结果进入 Excel 中的 Pivot table,我希望数字垂直显示而不是水平显示。当水平显示时,数字会在超过单元格长度后被截断。
试试这个...
SELECT STUFF((Select CAST(v.ID as VARCHAR(30)) + + ', '+ CHAR(10)
From Source
Where CriteriaIsMet
For XML Path(''),TYPE)
.value('.','NVARCHAR(MAX)'),1,0,'') as MonitorID
而不是添加 CHAR(13)
and/or CHAR(10)
,CHAR(9)
水平 TAB 对我有用。完整的 STUFF 参数和其他可能的大文本字段也应转换为 varchar(255)
.
应该是这样的:SELECT CAST(STUFF((...) + CHAR(9) as varchar(255)) as MonitorID