• SQL Server中对XML操作


    博客园的账号密码忘了,先放这儿吧

    1.    检查XML中节点是否存在
    SELECT xmlContent.exist('/Samples/Sample'),
        * FROM xmlTable
    WHERE xmlContent.exist('/Samples/Sample') = 1

    SELECT xmlContent.exist('/Samples//Name'),
        * FROM xmlTable
    WHERE xmlContent.exist('/Samples//Name') = 1


    2.    检查节点值是否存在
    SELECT TOP 100    *
    FROM  xmlTable
    WHERE xmlContent.exist('/Samples/Sample[Value=1]') = 1

    3.    获取XML某个节点的内容 (类似DOM的OutterXML)
    SELECT TOP 100   xmlContent.query('/Samples/Sample/Name'),
       *
    FROM  xmlTable

    4.    获取指定XML块的内容 (类似DOM的innerText)
    SELECT TOP 100   xmlContent.value('(/Samples/Sample/Name)[1]', 'varchar(100)'),
       *
    FROM  xmlTable


    附:做测试用的数据表和数据的生成SQL
    -- 创建测试表
    CREATE TABLE [xmlTable](
        [xmlId] [int] IDENTITY(1,1) NOT NULL,
        [xmlName] [varchar](50) NOT NULL,
        [xmlContent] [xml] NOT NULL,
        [xmlDescr] [varchar](2000) NULL
    )

    -- 初始化数据
    -- truncate table xmlTable
    DECLARE @iRow int,
            @xmlContent xml,
            @xmlName varchar(50),
            @xmlId int

    SET @iRow = 0
    SELECT @xmlId = max(xmlid) from xmlTable

    if(@xmlId is null)
        SET @xmlId = @iRow + 1

    While @iRow < 5
    BEGIN
        SET @xmlName = 'Sample' + Convert(varchar(10), @xmlId + @iRow)
        SET @xmlContent = '<Samples><Sample><Name>' + @xmlName+ '</Name><Value>'+ CONVERT(varchar(20), @xmlId + @iRow)
            + '</Value></Sample></Samples>'
        INSERT INTO [xmlTable]
               ([xmlName]
               ,[xmlContent]
               --,[xmlDescr]
               )
         VALUES
               (@xmlName
               ,@xmlContent
               --,<xmlDescr, varchar(2000),>
               )
          SET @iRow = @iRow + 1
    END

  • 相关阅读:
    2.3 Nginx服务的启停控制
    2.1 Nginx服务器安装
    三、函数 (SUM、MIN、MAX、COUNT、AVG)
    二、检索语句 SELECT、ORDER BY、WHERE
    一、数据库、SQL简介
    一、单元测试框架的基本使用介绍
    2.4 Nginx服务器基础配置指令
    第十七章 程序管理与SELinux初探--进程、进程管理(ps、top)
    第十五章 例行性工作(crontab)--循环执行的例行性工作调度 crontab(定时任务)
    java多线程04----------final和static
  • 原文地址:https://www.cnblogs.com/lyrix/p/2147807.html
Copyright © 2020-2023  润新知