FOR XML PATH 转换问题
以下我带大家了解关于 FOR XML PATH
- 首先我们看下所熟悉的表数据
之后转换
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 <骨牌编号>1</骨牌编号> 2 <骨牌颜色>橙</骨牌颜色> 3 <骨牌类型>石英</骨牌类型> 4 <骨牌价格>1.30</骨牌价格> 5 <骨牌重量>10.25</骨牌重量> 6 <生产日期>2015-05-05T00:00:00</生产日期> 7 <骨牌编号>2</骨牌编号> 8 <骨牌颜色>蓝</骨牌颜色> 9 <骨牌类型>石英</骨牌类型> 10 <骨牌价格>1.30</骨牌价格> 11 <骨牌重量>10.04</骨牌重量> 12 <生产日期>2015-12-21T00:00:00</生产日期> 13 <骨牌编号>3</骨牌编号> 14 <骨牌颜色>紫</骨牌颜色> 15 <骨牌类型>石英</骨牌类型> 16 <骨牌价格>1.30</骨牌价格> 17 <骨牌重量>10.39</骨牌重量> 18 <生产日期>2015-03-04T00:00:00</生产日期> 19 <骨牌编号>4</骨牌编号> 20 <骨牌颜色>紫</骨牌颜色> 21 <骨牌类型>石英</骨牌类型> 22 <骨牌价格>1.30</骨牌价格> 23 <骨牌重量>10.37</骨牌重量> 24 <生产日期>2015-07-16T00:00:00</生产日期> 25 <骨牌编号>5</骨牌编号> 26 <骨牌颜色>绿</骨牌颜色> 27 <骨牌类型>石英</骨牌类型> 28 <骨牌价格>1.30</骨牌价格> 29 <骨牌重量>10.30</骨牌重量> 30 <生产日期>2015-10-14T00:00:00</生产日期> 31 <骨牌编号>6</骨牌编号> 32 <骨牌颜色>红</骨牌颜色> 33 <骨牌类型>石英</骨牌类型> 34 <骨牌价格>1.30</骨牌价格> 35 <骨牌重量>10.34</骨牌重量> 36 <生产日期>2015-03-03T00:00:00</生产日期> 37 <骨牌编号>7</骨牌编号> 38 <骨牌颜色>绿</骨牌颜色> 39 <骨牌类型>石英</骨牌类型> 40 <骨牌价格>1.30</骨牌价格> 41 <骨牌重量>10.06</骨牌重量> 42 <生产日期>2015-11-19T00:00:00</生产日期> 43 <骨牌编号>8</骨牌编号> 44 <骨牌颜色>蓝</骨牌颜色> 45 <骨牌类型>石英</骨牌类型> 46 <骨牌价格>1.30</骨牌价格> 47 <骨牌重量>10.74</骨牌重量> 48 <生产日期>2015-02-04T00:00:00</生产日期> 49 <骨牌编号>9</骨牌编号> 50 <骨牌颜色>绿</骨牌颜色> 51 <骨牌类型>石英</骨牌类型> 52 <骨牌价格>1.30</骨牌价格> 53 <骨牌重量>10.54</骨牌重量> 54 <生产日期>2015-01-28T00:00:00</生产日期> 55 <骨牌编号>10</骨牌编号> 56 <骨牌颜色>紫</骨牌颜色> 57 <骨牌类型>石英</骨牌类型> 58 <骨牌价格>1.30</骨牌价格> 59 <骨牌重量>10.52</骨牌重量> 60 <生产日期>2015-05-07T00:00:00</生产日期>
从以上我们可以看到:
FOR XML PATH('') 这个代码是把SQL 的表格数据转换为XML数据流的功能
PAHT('')的 '' 里面的从图
可知是 PATH() 具表辨识行的作用。
- 好了废话不多说,以下我就以标注的形式进行讲解:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 SELECT TOP 3骨牌编号 2 ,骨牌颜色 -- 默认的列名为 骨牌颜色 3 ,骨牌类型 AS DominoType -- 指定其他别名 4 ,骨牌价格 + 骨牌重量 AS 组合值 5 ,CONVERT(CHAR(10),生产日期,23) -- 当列进行编辑的时候,不附带AS别称的时候,会照成<生产日期></生产日期>丢失,即无列名 6 ,骨牌颜色 + '的骨牌要花:' + CONVERT(VARCHAR(10),骨牌价格) + '元' 7 FROM [dbo].[骨牌存储箱] 8 FOR XML PATH('Item') -- 以Item为行号标识
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 <Item> 2 <骨牌编号>1</骨牌编号> 3 <骨牌颜色>橙</骨牌颜色> 4 <DominoType>石英</DominoType> 5 <组合值>11.55</组合值> 6 2015-05-05 7 橙的骨牌要花:1.30元 8 </Item> 9 <Item> 10 <骨牌编号>2</骨牌编号> 11 <骨牌颜色>蓝</骨牌颜色> 12 <DominoType>石英</DominoType> 13 <组合值>11.34</组合值> 14 2015-12-21 15 蓝的骨牌要花:1.30元 16 </Item> 17 <Item> 18 <骨牌编号>3</骨牌编号> 19 <骨牌颜色>紫</骨牌颜色> 20 <DominoType>石英</DominoType> 21 <组合值>11.69</组合值> 22 2015-03-04 23 紫的骨牌要花:1.30元 24 </Item>
就是列无标题的就是会失去<></>剩下的大家可以自由的组合编辑了。