sqlserver中将查询结果拼接成字符串
#for xml path(param)--将查询结果以xml格式输出
1select id,name from table1 for xml path
2 --id和name为table1的真实字段
- path后⾯没有参数时,每⾏数据被默认<row>标签包裹,每⾏列数据被被其列名标签包裹。
上⾯sql的结果可如下:
1 <row>
2    <id>1</id>
3    <name>holab</name>
4 </row>
5 <row>
6    <id>2</id>
7    <name>name1</name>
8 </row>
9 ....
- 每⾏数据最外⾯包裹的标签由path的参数控制(没有参数时,默认为row),所以要去掉则可以直接给⼀个空字符串作为path的参数。- 每⾏列数据所被直接包裹的标签由查询结果的列名控制,要去掉只需要保证查询出来的列没有列名就可以了(保证没有列名最简单的⽅法是给每个字段加⼀个空字符串)。
1select (select id+'',name+''from table1 for xml path(''))
结果:
#stuff函数
stuff(character_expression,start,length,replaceWith_expression)
删除指起始位置(start)指定长度(length)的字符,并在该位置插⼊代替的字符(replaceWith_expression)
#row_number() over(order by column)--为查询结果添加序号列
1select id,name,row_number over(order by id) as num from table1
结果:
1 id    name    num
21    holab    1
32    name1    2
44    name      3
5 ....
#将查询结果拼接成以逗号分隔的字符串--每条数据以逗号分隔
1select stuff((select','+id+':',name+''from table1 for xml path('')),1,1,'')
结果:
11:holab,
#将查询结果的每条数据换⾏显⽰(每⾏开头添加序号)
1select (select row_number() over(order by id)+'、',id+':',name+char(10) from table1 for xml path(''))
结果:
11、1:holab
22、2:name2
3 ....
sql server拼接字符串函数45 --char(10)为sql server中的换⾏符
6 --因为最后⼀⾏也有换⾏符,所以最后会多⼀⾏空⽩⾏

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。