我认为这主要是关于格式化数据以使其看起来更像表格的问题,因为您可以按照问题中的指示获取表格数据。我使用了一个具有以下结构和数据的示例表:
create table Sample
( Column1 date
, Column2 char(3)
, Column3 decimal(5, 2)
, Column4 varchar(5)
)
insert
dbo.Sample
( Column1
, Column2
, Column3
, Column4
)
values
('2020-09-28', 'AC1', 7.5, 'Mon')
, ('2021-02-15', 'AC2', 7.5, 'Wed')
, ('2021-02-16', 'AC2', 7.5, 'Thurs')
, ('2021-02-10', 'AC3', 7.5, 'Mon')
, ('2021-02-12', 'AC4', 3.5, 'Tue')
, ('2021-02-08', 'AC4', 1, 'Mon')
, ('2021-02-10', 'AD4', 7.5, 'Wed')
, ('2021-02-11', 'AD4', 7.5, 'Thurs')
, ('2021-02-15', 'AD4', 7.5, 'Mon')
, ('2021-02-16', 'AD4', 7.5, 'Tue')
, ('2021-02-17', 'AD4', 7.5, 'Wed')
, ('2021-02-18', 'AD4', 7.5, 'Thurs')
, ('2021-02-22', 'AC4', 7.5, 'Mon')
一种方法可能是这样的:
declare @tablerows varchar(max) = ''
select
@tablerows = @tablerows + '''' + convert(varchar, s.Column1) + ''', ''' + s.Column2 + ''', ' + convert(varchar, s.Column3) + ', ''' + s.Column4 + '''
'
from
dbo.Sample s
print @tablerows
给出结果:
'2020-09-28', 'AC1', 7.50, 'Mon'
'2021-02-15', 'AC2', 7.50, 'Wed'
'2021-02-16', 'AC2', 7.50, 'Thurs'
'2021-02-10', 'AC3', 7.50, 'Mon'
'2021-02-12', 'AC4', 3.50, 'Tue'
'2021-02-08', 'AC4', 1.00, 'Mon'
'2021-02-10', 'AD4', 7.50, 'Wed'
'2021-02-11', 'AD4', 7.50, 'Thurs'
'2021-02-15', 'AD4', 7.50, 'Mon'
'2021-02-16', 'AD4', 7.50, 'Tue'
'2021-02-17', 'AD4', 7.50, 'Wed'
'2021-02-18', 'AD4', 7.50, 'Thurs'
'2021-02-22', 'AC4', 7.50, 'Mon'
另一种方法可能是这样的:
declare @tablerows varchar(max) = convert(varchar(max), (SELECT * FROM dbo.Sample rows FOR XML AUTO))
set @tablerows = replace(@tablerows, '/><rows', '
')
set @tablerows = replace(@tablerows, '<rows', '')
set @tablerows = replace(@tablerows, '/>', '')
print @tablerows
结果如下:
Column1="2020-09-28" Column2="AC1" Column3="7.50" Column4="Mon"
Column1="2021-02-15" Column2="AC2" Column3="7.50" Column4="Wed"
Column1="2021-02-16" Column2="AC2" Column3="7.50" Column4="Thurs"
Column1="2021-02-10" Column2="AC3" Column3="7.50" Column4="Mon"
Column1="2021-02-12" Column2="AC4" Column3="3.50" Column4="Tue"
Column1="2021-02-08" Column2="AC4" Column3="1.00" Column4="Mon"
Column1="2021-02-10" Column2="AD4" Column3="7.50" Column4="Wed"
Column1="2021-02-11" Column2="AD4" Column3="7.50" Column4="Thurs"
Column1="2021-02-15" Column2="AD4" Column3="7.50" Column4="Mon"
Column1="2021-02-16" Column2="AD4" Column3="7.50" Column4="Tue"
Column1="2021-02-17" Column2="AD4" Column3="7.50" Column4="Wed"
Column1="2021-02-18" Column2="AD4" Column3="7.50" Column4="Thurs"
Column1="2021-02-22" Column2="AC4" Column3="7.50" Column4="Mon"
当然,这两种方法都与从表格中选择并输出到文本完全一样,但是您可以根据您对格式的关心程度,从这两种方法中的任何一种中进行构建。