在SQL Server中对XML的再操作转换:

方法1:

--生成XML
SELECT * FROM [T_BAS_预算科目] FOR XML PATH --把XML转成SQL表
declare @XmlData nvarchar(max)
set @XmlData = '<row 科目编码="0" 科目名称="全部" />
<row 科目编码="1" 上级编码="0" 科目名称="功能收入分类" 科目级次="0" 预算年度="2016" 显示级别="0" />
<row 科目编码="101" 上级编码="1" 科目名称="税收收入" 科目级次="1" 预算年度="2016" 显示级别="0" />
<row 科目编码="10101" 上级编码="101" 科目名称="增值税" 科目级次="1" 预算年度="2016" 显示级别="1" />
<row 科目编码="1010101" 上级编码="10101" 科目名称="国内增值税" 科目级次="1" 预算年度="2016" 显示级别="2" />
<row 科目编码="101010101" 上级编码="1010101" 科目名称="国有企业增值税" 科目级次="1" 预算年度="2016" 显示级别="3" />
<row 科目编码="101010102" 上级编码="1010101" 科目名称="集体企业增值税" 科目级次="1" 预算年度="2016" 显示级别="3" />
<row 科目编码="101010103" 上级编码="1010101" 科目名称="股份制企业增值税" 科目级次="1" 预算年度="2016" 显示级别="3" />' declare @MxDataList xml
set @MxDataList = cast(@XmlData as xml) SELECT
C.value('./@科目编码','varchar(30)') as 科目编码,
C.value('./@上级编码','varchar(30)') as 上级编码,
C.value('./@科目名称','varchar(30)') as 科目名称,
C.value('./@科目级次','varchar(30)') as 科目级次
FROM @MxDataList.nodes('/row') T(C)

方法2:

--生成XML
SELECT * FROM [T_BAS_预算科目] FOR XML RAW --把XML转成SQL表
declare @XmlData nvarchar(max)
set @XmlData = '<row>
<科目编码>0</科目编码>
<科目名称>全部</科目名称>
</row>
<row>
<科目编码>1</科目编码>
<上级编码>0</上级编码>
<科目名称>功能收入分类</科目名称>
<科目级次>0</科目级次>
<预算年度>2016</预算年度>
<显示级别>0</显示级别>
</row>
<row>
<科目编码>101</科目编码>
<上级编码>1</上级编码>
<科目名称>税收收入</科目名称>
<科目级次>1</科目级次>
<预算年度>2016</预算年度>
<显示级别>0</显示级别>
</row>' declare @MxDataList xml
set @MxDataList = cast(@XmlData as xml) SELECT
C.value('(*)[1]','varchar(30)') as 科目编码,
C.value('(*)[2]','varchar(30)') as 上级编码,
C.value('(*)[3]','varchar(30)') as 科目名称,
C.value('(*)[4]','varchar(30)') as 科目级次
FROM @MxDataList.nodes('/row') T(C)

以上两种方法,随着 FOR XML后面的参数不同,生成的XML格式也不同,后面再转换的语句也不同,记录一下,省得忘了!!!

SQL Server 中对 FOR XML和FROM的转换处理的更多相关文章

  1. 如果正确读取SQL Server中的扩展事件?

        SQL Server中使用扩展事件捕捉所需的信息后,可以选择存放的位置.比如说内存或文件中,但无论存在哪里,其本质都是一个大XML.因此在SQL Server中读取该XML就是解析扩展事件结果 ...

  2. sql server中对xml进行操作

    一.前言 SQL Server 2005 引入了一种称为 XML 的本机数据类型.用户可以创建这样的表,它在关系列之外还有一个或多个 XML 类型的列:此外,还允许带有变量和参数.为了更好地支持 XM ...

  3. SQL SERVER中XML查询:FOR XML指定PATH

    SQL SERVER中XML查询:FOR XML指定PATH 前言 在SQL SERVER中,XML查询能够指定RAW,AUTO,EXPLICIT,PATH.本文用一些实例介绍SQL SERVER中指 ...

  4. SQL Server中提前找到隐式转换提升性能的办法

        http://www.cnblogs.com/shanksgao/p/4254942.html 高兄这篇文章很好的谈论了由于数据隐式转换造成执行计划不准确,从而造成了死锁.那如果在事情出现之前 ...

  5. SQL Server中查询数据库及表的信息语句

    /* -- 本文件主要是汇总了 Microsoft SQL Server 中有关数据库与表的相关信息查询语句. -- 下面的查询语句中一般给出两种查询方法, -- A方法访问系统表,适应于SQL 20 ...

  6. 深入浅出SQL Server中的死锁

    简介 死锁的本质是一种僵持状态,是多个主体对于资源的争用而导致的.理解死锁首先需要对死锁所涉及的相关观念有一个理解. 一些基础知识 要理解SQL Server中的死锁,更好的方式是通过类比从更大的面理 ...

  7. SQL Server中关于跟踪(Trace)那点事

    前言 一提到跟踪俩字,很多人想到警匪片中的场景,同样在我们的SQL Server数据库中“跟踪”也是无处不在的,如果我们利用好了跟踪技巧,就可以针对某些特定的场景做定向分析,找出充足的证据来破案. 简 ...

  8. 为什么SQL语句Where 1=1 and在SQL Server中不影响性能

        最近一个朋友和我探讨关于Where 1=1 and这种形式的语句会不会影响性能.最后结论是不影响.     虽然结论正确,但对问题的认识却远远没有解决问题的根本.实际上在T-SQL语句的书写过 ...

  9. 【转】SQL Server中关于跟踪(Trace)那点事

    前言 一提到跟踪俩字,很多人想到警匪片中的场景,同样在我们的SQL Server数据库中“跟踪”也是无处不在的,如果我们利用好了跟踪技巧,就可以针对某些特定的场景做定向分析,找出充足的证据来破案. 简 ...

随机推荐

  1. 文本处理三剑客之 grep

    grep简介 grep(Global search REgular expression and Print out the line)是Linux上的文本处理三剑客之一,另外两个是sed和awk. ...

  2. CountDownLatch的简单使用

    from https://www.jianshu.com/p/cef6243cdfd9 1.CountDownLatch是什么? CountDownLatch是一个同步工具类,它允许一个或多个线程一直 ...

  3. 绕过安全狗等一些WAF收集

    绕过安全狗sql注入 http://demo.74cms.com/plus/ajax_common.php?act=hotwordquery=錦union+select+1,group_concat% ...

  4. DB TABLE实践

    我的数据库设计实践(一)   兜兜转转,突然发现我现在已经是一个老司机了,一直写代码都很忙,没有把很多点点滴滴的记录下来,今天开始就开始一个系列,分析当年我接触或者我设计过的表结构,有好有坏,有欢喜也 ...

  5. 【转】2013 PHP技术峰会《Bug Free的PHP开发实践分享》摘录

    要想代码写的好,前提配置做的好 error_reporting  =  E_ALL | E_STRICT display_errors = 测试机设置为 On,生产机设置为 Off display_s ...

  6. 利用MSF批量打RMI漏洞

    声明:不会Java. 参考:https://www.secpulse.com/archives/6203.html 下载mjet,https://github.com/mogwaisec/mjet 按 ...

  7. BZOJ 3744: Gty的妹子序列 【分块 + 树状数组 + 主席树】

    任意门:https://www.lydsy.com/JudgeOnline/problem.php?id=3744 3744: Gty的妹子序列 Time Limit: 20 Sec  Memory ...

  8. HDU 1166 【线段树 || 树状数组,单点修改 维护区间和】

    题目链接 HDU 1166 大概题意: 第一行一个整数T,表示有T组数据.每组数据第一行一个正整数N(N<=50000),表示敌人有N个工兵营地,接下来有N个正整数,第i个正整数ai代表第i个工 ...

  9. SimpleProfile_GetParameter && SimpleProfile_SetParameter

    /********************************************************************* * @fn SimpleProfile_GetParame ...

  10. 轻量ORM-SqlRepoEx (六) JOIN

    示例使用的是最新 SqlRepoEx 2.0.2 可在:https://github.com/AzThinker/SqlRepoEx2.0Demo 或:https://gitee.com/azthin ...