码迷,mamicode.com
首页 > 数据库 > 详细

sql 和xml

时间:2017-08-19 22:25:26      阅读:312      评论:0      收藏:0      [点我收藏+]

标签:nvarchar   var   change   技术   rem   where   http   sql   data   

一·常用基本功能

表结果:技术分享

1.

技术分享
 1 <row>
 2   <ID>1035</ID>
 3   <Rate>6.12</Rate>
 4   <Date>2013-11-28</Date>
 5   <Remark>正常</Remark>
 6 </row>
 7 <row>
 8   <ID>1036</ID>
 9   <Rate>6.15</Rate>
10   <Date>2013-11-28</Date>
11   <Remark>正常</Remark>
12 </row>
技术分享
1 SELECT * 
2 FROM dbo.T_H_ExchangeRate
3 FOR XML PATH

2.

技术分享
1 <ID>1035</ID>
2 <Rate>6.12</Rate>
3 <Date>2013-11-28</Date>
4 <Remark>正常</Remark>
5 <ID>1036</ID>
6 <Rate>6.15</Rate>
7 <Date>2013-11-28</Date>
8 <Remark>正常</Remark>
技术分享
1 SELECT * 
2 FROM dbo.T_H_ExchangeRate
3 FOR XML PATH(‘‘)

3.

技术分享
<SUN>
  <ID>1035</ID>
  <Rate>6.12</Rate>
  <Date>2013-11-28</Date>
  <Remark>正常</Remark>
</SUN>
<SUN>
  <ID>1036</ID>
  <Rate>6.15</Rate>
  <Date>2013-11-28</Date>
  <Remark>正常</Remark>
</SUN>
技术分享
SELECT * 
FROM dbo.T_H_ExchangeRate
FOR XML PATH(‘SUN‘)

4.

技术分享
<汉语>
  <序号>1035</序号>
  <汇率>6.12</汇率>
  <日期>2013-11-28</日期>
  <标记>正常</标记>
</汉语>
<汉语>
  <序号>1036</序号>
  <汇率>6.15</汇率>
  <日期>2013-11-28</日期>
  <标记>正常</标记>
</汉语>
技术分享
技术分享
SELECT ID AS ‘序号‘,
       Rate AS ‘汇率‘,
       Date AS ‘日期‘,
       Remark AS ‘标记‘
FROM dbo.T_H_ExchangeRate
FOR XML PATH(‘汉语‘)
技术分享

5.

技术分享
--生成带顶层节点
<Table> <Row> <ID>1035</ID> <Rate>6.12</Rate> <Date>2013-11-28</Date> <Remark>正常</Remark> </Row> <Row> <ID>1036</ID> <Rate>6.15</Rate> <Date>2013-11-28</Date> <Remark>正常</Remark> </Row> </Table>
技术分享
SELECT *
FROM dbo.T_H_ExchangeRate
FOR XML PATH(‘Row‘),ROOT(‘Table‘)
技术分享
--还原成DataTable的形式,查找节点
SELECT T.x.value(‘(ID)[1]‘,‘nvarchar(50)‘) AS ID,
       T.x.value(‘(Rate)[1]‘,‘nvarchar(50)‘) AS Rate,
       T.x.value(‘(Date)[1]‘,‘nvarchar(50)‘) AS Date,
       T.x.value(‘(Remark)[1]‘,‘nvarchar(50)‘) AS Remark
FROM @xmlStr.nodes(‘/Table/Row‘) T(x)
技术分享

 

 

6.

[正常],[正常],
SELECT ‘[‘+Remark+‘],‘
FROM dbo.T_H_ExchangeRate
FOR XML PATH(‘‘)

7.

数据源:

技术分享

 

查询结果:技术分享

技术分享
--源代码
SELECT C.O_USER, LEFT(C.Operate,LEN(Operate)-1) Operate FROM ( SELECT A.O_USER, ( SELECT B.O_TYPE+‘,‘ FROM dbo.T_UP_Olog AS B WHERE B.O_USER = A.O_USER FOR XML PATH(‘‘) ) Operate FROM dbo.T_UP_Olog A GROUP BY A.O_USER )AS C
技术分享

 

sql 和xml

标签:nvarchar   var   change   技术   rem   where   http   sql   data   

原文地址:http://www.cnblogs.com/yujihaia/p/7397949.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!