T-sql for xml path使用

用法: FOR XML PATH 方法是用于将查询结果集以XML形式展示

sql:

 

  select top 5 p.ContactTypeID,p.ModifiedDate,p.Name from [Person].[ContactType] p for xml path

显示结果:

<row>
  <ContactTypeID>1</ContactTypeID>
  <ModifiedDate>2002-06-01T00:00:00</ModifiedDate>
  <Name>Accounting Manager</Name>
</row>
<row>
  <ContactTypeID>2</ContactTypeID>
  <ModifiedDate>2002-06-01T00:00:00</ModifiedDate>
  <Name>Assistant Sales Agent</Name>
</row>
<row>
  <ContactTypeID>3</ContactTypeID>
  <ModifiedDate>2002-06-01T00:00:00</ModifiedDate>
  <Name>Assistant Sales Representative</Name>
</row>
<row>
  <ContactTypeID>4</ContactTypeID>
  <ModifiedDate>2002-06-01T00:00:00</ModifiedDate>
  <Name>Coordinator Foreign Markets</Name>
</row>
<row>
  <ContactTypeID>5</ContactTypeID>
  <ModifiedDate>2002-06-01T00:00:00</ModifiedDate>
  <Name>Export Administrator</Name>
</row>

path的用法:用来指定行结点,如果不指定行节点,默认使用'row',

sql:

  select top 5 p.ContactTypeID,p.ModifiedDate,p.Name from [Person].[ContactType] p for xml path('AA')

显示结果:

<AA>
  <ContactTypeID>1</ContactTypeID>
  <ModifiedDate>2002-06-01T00:00:00</ModifiedDate>
  <Name>Accounting Manager</Name>
</AA>
<AA>
  <ContactTypeID>2</ContactTypeID>
  <ModifiedDate>2002-06-01T00:00:00</ModifiedDate>
  <Name>Assistant Sales Agent</Name>
</AA>
<AA>
  <ContactTypeID>3</ContactTypeID>
  <ModifiedDate>2002-06-01T00:00:00</ModifiedDate>
  <Name>Assistant Sales Representative</Name>
</AA>
<AA>
  <ContactTypeID>4</ContactTypeID>
  <ModifiedDate>2002-06-01T00:00:00</ModifiedDate>
  <Name>Coordinator Foreign Markets</Name>
</AA>
<AA>
  <ContactTypeID>5</ContactTypeID>
  <ModifiedDate>2002-06-01T00:00:00</ModifiedDate>
  <Name>Export Administrator</Name>
</AA>

 

下来来利用 for xml path 输出结果就是一行字符串,如果去掉行节点就可以把整列的结果输出一行,

 

sql :

select top 5 '['+ p.Name+']' from [Person].[ContactType] p for xml path('')

显示结果: [Accounting Manager][Assistant Sales Agent][Assistant Sales Representative][Coordinator Foreign Markets][Export Administrator]

 

这个可用来 一行来显示明细表中的信息,通常主表和细表是一对多的关系,把细表中的多用 for xml path 输出为一列,加到主表中一起输出。

 

转载于:https://www.cnblogs.com/langhua/p/4193161.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值