• SQL SERVER中XML查询:FOR XML指定RAW


    SQL SERVER中XML查询:FOR XML指定RAW

    前言

    在SQL SERVER中,XML查询可以指定RAW,AUTO,EXPLICIT,PATH。本文用一些实例介绍SQL SERVER中指定RAW的XML查询。

    基础FOR XML查询

    看实例:

    with TestXml
    as
    (
        select 1 as id,'LeeWhoeeUniversity' as name
        union all
        select 2,'SQLSERVER中XML查询'
        union all
        select 3 ,'FOR XML'
    )
    select id,name from testxml for xml raw,type

    运行后结果:



    红色字体type可选,不会影响结果,只是影响数据类型。

    指定 ELEMENTS:

    with TestXml
    as
    (
        select 1 as id,N'LeeWhoeeUniversity' as name
        union all
        select 2,N'SQLSERVER中XML查询'
        union all
        select 3 ,null
    )
    select id,name from testxml for xml raw,elements

    注意,第三行值改为NULL值进行测试。

    结果:


      1
      LeeWhoeeUniversity


      2
      SQLSERVER中XML查询


      3

    元素name在第三行没有出现,因为是NULL值。

    但是我们可以用XSINIL生成NULL值的name元素。

    如:

    with TestXml
    as
    (
        select 1 as id,N'LeeWhoeeUniversity' as name
        union all
        select 2,N'SQLSERVER中XML查询'
        union all
        select 3 ,null
    )
    select id,name from testxml for xml raw,elements XSINIL 
    运行结果:


      1
      LeeWhoeeUniversity


      2
      SQLSERVER中XML查询


      3
     

    使用XMLDATA和XMLSCHEMA

    XMLDATA返回描述文档结构的 XML-DATA 架构。

    如:

    with TestXml
    as
    (
        select 1 as id,N'LeeWhoeeUniversity' as name
        union all
        select 2,N'SQLSERVER中XML查询'
        union all
        select 3 ,null
    )
    select id,name from testxml for xml raw,XMLDATA  


    结果:


     
       
       
       
       
     




    XML SCHEMA

    通过指定 XMLSCHEMA 选项,您可以针对结果请求 XSD 架构:

    with TestXml
    as
    (
        select 1 as id,N'LeeWhoeeUniversity' as name
        union all
        select 2,N'SQLSERVER中XML查询'
        union all
        select 3 ,null
    )
    select id,name from testxml for xml raw,XMLSCHEMA   
    结果:


     
     
       
         
         
           
             
               
             

           

         

       

     




    您可以将目标命名空间 URI 指定为 FOR XML 中 XMLSCHEMA 的可选参数。

    with TestXml
    as
    (
        select 1 as id,N'LeeWhoeeUniversity' as name
        union all
        select 2,N'SQLSERVER中XML查询'
        union all
        select 3 ,null
    )
    select id,name from testxml for xml raw,XMLSCHEMA ('urn:http://blog.csdn.net/lihui_830501') 


    结果:


     
     
       
         
         
           
             
               
             

           

         

       

     




    检索二进制数据

    像XMLDATA一样,在SQL中指定BINARY BASE64。

    重命名 元素

    with TestXml
    as
    (
        select 1 as id,N'LeeWhoeeUniversity' as name
        union all
        select 2,N'SQLSERVER中XML查询'
        union all
        select 3 ,null
    )
    select id,name from testxml for xml raw ('myrow')

    结果:



    指定ELEMENTS的情况类同。

    为 FOR XML 生成的 XML 指定根元素

    with TestXml
    as
    (
        select 1 as id,N'LeeWhoeeUniversity' as name
        union all
        select 2,N'SQLSERVER中XML查询'
        union all
        select 3 ,null
    )
    select id,name from testxml for xml raw,root('myroot')

    结果:


     
     
     

    查询 XML 类型的列

    declare @xml table(xid int,xname varchar(50),xmlcol xml);
    insert into @xml select 1,'第一行','
      
      
      
    '
    insert into @xml select 2,'第二行','
      
      
    '
    select xid,xname,xmlcol.query('/myroot') from @xml for xml raw


     

    结果:


     
       
       
       
     



     
       
       
     


     

    总结


    以上对指定RAW的XML查询就介绍完了,下一篇文章将继续用实例介绍SQL SERVER中的XML查询:指定AUTO查询。

    1. SQL SERVER中XML查询:FOR XML指定RAW
    2. SQL SERVER中XML查询:FOR XML指定AUTO
    3. SQL SERVER中XML查询:FOR XML指定EXPLICIT
    4. SQL SERVER中XML查询:FOR XML指定PATH
    5. 关于XML类型,请参考:http://blog.csdn.net/leewhoee/article/details/8571286
    6. 关于XML索引,请参考:http://blog.csdn.net/leewhoee/article/details/8579743

  • 相关阅读:
    V4L2视频驱动框架---meida_device管理模块简述
    【聚类】之浅谈(对比K-means跟DB-scan)
    三、RTMP协议 视频Chunk和音频Chunk到底长啥样?
    使用Python进行食品配送时间预测
    LibTorch | 使用神经网络求解一维稳态对流扩散方程
    CMT2380F32模块开发5-CLK例程
    【算法竞赛】【模式串匹配算法(KMP)】【附带模板题】
    vue3初尝试
    cmd命令行设置 windows 设置环境变量
    博弈论与SG函数入门
  • 原文地址:https://blog.csdn.net/cqn2bd2b/article/details/126809116