sql 和xml

一·常用基本功能

表结果:

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
原文地址:https://www.cnblogs.com/qizhelongdeyang/p/3448418.html