在SQL2005中输出逗号连接的字符串

直接上SQL


select stuff((
select ','+CAST([Id] as varchar) 
from EventLog
for XML Path('Logs'),Type).value('.','varchar(max)'),1,1,'')


输出:

1,2,3,4,5,6,7,8,9,10,11,12,13,14




上面的SQL中 EventLog是一个Table,[Id]是其中一个字段名。

select 子句作用是用逗号连接每一个查询出来的[Id],for XML Path('') 子句是将查询结晒输出为XML,Type 的作用是使输出的内容为XML DOM,这就可以使用点运算符调用value()函数,将XML中的”值“提取,并使用逗号连接起来。

外层的Select子句,使用Stuff函数,将从下标为1,长度为1的字符去掉,并使用一个空白字符代替。

查询结果的顺序:

A

select ','+CAST([Id] as varchar) 
from EventLog
for XML Path('Logs'),Type

<Logs>,1</Logs>
<Logs>,2</Logs>
<Logs>,3</Logs>
<Logs>,4</Logs>
<Logs>,5</Logs>
<Logs>,6</Logs>
<Logs>,7</Logs>
<Logs>,8</Logs>
<Logs>,9</Logs>
<Logs>,10</Logs>
<Logs>,11</Logs>
<Logs>,12</Logs>
<Logs>,13</Logs>
<Logs>,14</Logs>

B:

select (
select ','+CAST([Id] as varchar) 
from EventLog
for XML Path('Logs'),Type).value('.','varchar(max)')


,1,2,3,4,5,6,7,8,9,10,11,12,13,14
C:

select stuff((
select ','+CAST([Id] as varchar) 
from EventLog
for XML Path('Logs'),Type).value('.','varchar(max)'),1,1,'')
1,2,3,4,5,6,7,8,9,10,11,12,13,14

如果不好理解可以自行查询MSDN及建一个表测试一下。


Stuff函数参考:

http://msdn.microsoft.com/en-us/library/ms188043.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值