zoukankan      html  css  js  c++  java
  • FOR XML PATH

    /*

     

    FOR XML PATH

    之前已经说了一些FOR XML (AUTO,RAW)的使用,下面说一说FOR XML PATH 模式的使用.

    AUTO,RAW模式可以满足大多数的XML格式需求,PATH模式可以提供其他的一些格式功能.

    */

     

    --1.控制层次

    /*

    使用PATH模式,你可以生成XML节点的层次结构.XML的层次是通过列的别名来控制的.

    下面的查询中增加了一个新的包含了NAME,Phone和SEX的节点INFO,注意别名中的"/"

    是用来控制XML生成层次的。

    */

     

    --测试表沿用FOR XML (AUTO,RAW) 中的Employees的测试表。

     

    SELECT

    EmployeeID AS '@id',

    Name AS 'info/NAME',

    Phone AS 'info/Phone',

    SEX AS 'info/SEX'

    FROM Employees FOR XML PATH('Employee'), TYPE, ELEMENTS, ROOT('Employees')

     

    /*

    <Employees>

      <Employee id="1">

        <info>

          <NAME>tudou</NAME>

          <Phone>15958944683</Phone>

          <SEX>男</SEX>

        </info>

      </Employee>

      <Employee id="2">

        <info>

          <NAME>shuige</NAME>

          <Phone>00000000000</Phone>

          <SEX>男</SEX>

        </info>

      </Employee>

      <Employee id="3">

        <info>

          <NAME>xiaozhu</NAME>

          <Phone>11111111111</Phone>

          <SEX>男</SEX>

        </info>

      </Employee>

    </Employees>

    */

     

    --2: 生成列表

     

     /*

    上面我们看到PATH可以用来控制层次结构,PATH还可以用来生成列表

    在行转列的时候很有用途,逛CSDN的应该经常看到这样的用法。下面

    生成EmployeeID列表

    */

     

     

     

    SELECT

    EmployeeID AS 'data()'

    FROM Employees

    FOR XML PATH('')

     

    /*

    结果:

    1 2 3

    */

     

    /*

    可以看到结果是用空格隔开的,但是大部分时候我们需要以一定的符号

    隔开,下面我们以","隔开。

    */

     

    SELECT REPLACE(

               (SELECT

               EmployeeID AS 'data()'

               FROM Employees

               FOR XML PATH('') ),' ',',')

     

    /*

    结果:

    1,2,3

    */

  • 相关阅读:
    ORA-01207: file is more recent than control file
    ORA-08189
    oracle 修改表空间存储路径
    oracle 日志文件管理
    Oracle ClusterwarePRCT-1011 : Failed to run "oifcfg".&nb
    linux:文件打包与压缩
    linux:查找搜索文件
    Python:lambda表达式(匿名函数)
    网络协议各层概述
    linux:用户及文件权限管理
  • 原文地址:https://www.cnblogs.com/wfx001/p/4059831.html
Copyright © 2011-2022 走看看