Sql语句查询XML - 小结
--两种方式查询
DECLARE @varXML XML,
@varXML1 XML,
@varXML2 XML --、xml数据源为属性方式
SET @varXML = '<PARAM>
<Row FID = "" FName = "张三" />
<Row FID = "" FName = "李四" />
<Row FID = "" FName = "王五" />
</PARAM>' Select T.C.value('@FID','INT') AS FID,
T.C.value('@FName','VARCHAR(20)') AS FName
From @varXML.nodes('/PARAM/Row') T(C)
--、xml数据源为标签方式
SET @varXML1 = '<PARAM>
<Row><FID></FID><FName>张三</FName></Row>
<Row><FID></FID><FName>李四</FName></Row>
<Row><FID></FID><FName>王五</FName></Row>
</PARAM>' Select T.C.value('(FID)[1]','INT') AS FID,
T.C.value('(FName)[1]','VARCHAR(20)') AS FName
From @varXML1.nodes('/PARAM/Row') T(C)
--3、xml数据源为属性方式(多级嵌套)
SET @varXML2 = '<root>
<hosptail hospCode = "1" hospName = "测试医院" >
<dept deptCode = "2" deptName = "内科" >
<doctor docCode = "3" docName = "王五" ></doctor>
</dept>
</hosptail>
</root>'
Select T.C.value('(/root/hosptail/@hospCode)[1]','INT') AS FID,
T.C.value('(/root/hosptail/@hospName)[1]','VARCHAR(20)') AS FName,
T.C.value('(/root/hosptail/dept/@deptCode)[1]','INT') AS FID,
T.C.value('(/root/hosptail/dept/@deptName)[1]','VARCHAR(20)') AS FName,
T.C.value('(/root/hosptail/dept/doctor/@docCode)[1]','INT') AS FID,
T.C.value('(/root/hosptail/dept/doctor/@docName)[1]','VARCHAR(20)') AS FName
From @varXML2.nodes('/root') T(C)
应用场景:对外提供的WebService,别人访问接口后,传入XML参数,直接将XML当做存储过程的参数,在存储过程中查询、游标等解析处理。
当入参同一个参数 有多个时,
--入参中 同一个参数有多个的情况,如下<detailId>LYTSA0000942|</detailId> <detailId>LYTSA0000942|</detailId> declare @xmlStr XML set @xmlStr = '<root><medicalCardNumber>001000030044374</medicalCardNumber><outTradeNo>ZJZF_DZSYCSFYBJY_10391149</outTradeNo><amount>0.00</amount>
<payTime>-- ::</payTime><payType>WeChatPay</payType><balancePayment>0.07</balancePayment><hospitalId>0534_0115</hospitalId>
<detailId>LYTSA0000942|</detailId><detailId>LYTSA0000942|</detailId>
</root>' --通过指定(detailId)[] 或 (detailId)[] 来确定取哪个 参数
Select T.C.value('(medicalCardNumber)[1]','varchar(1024)') AS FID,
T.C.value('(outTradeNo)[1]','VARCHAR(1024)') AS FName,
T.C.value('(detailId)[1]','varchar(1024)') AS detailId1,
T.C.value('(detailId)[2]','varchar(1024)') AS detailId2
From @xmlStr.nodes('/root') T(C)
Sql语句查询XML - 小结的更多相关文章
- 如何用SQL语句查询Excel数据?
如何用SQL语句查询Excel数据?Q:如何用SQL语句查询Excel数据? A:下列语句可在SQL SERVER中查询Excel工作表中的数据. 2007和2010版本: SELECT*FROMOp ...
- sql语句查询
1. sql语句查询某位数字或者某几位数字开头的数据,字段类型为数字类: %’: 2. sql搜索以4开头和含有李字的数据: select * from wlzbpre_user where real ...
- phpcmsv9自定义sql语句查询模型实现
在phpcmsv9中,自定义sql语句查询可不太好实现,传入sql语句查询很容易被内部转入生成一系列莫名其妙的sql语句,比如最佳前缀等等,直接造成sql语句查询错误,在此也提供两种解决办法,1修改底 ...
- 怎样用SQL语句查询一个数据库中的所有表?
怎样用SQL语句查询一个数据库中的所有表? --读取库中的所有表名 select name from sysobjects where xtype='u'--读取指定表的所有列名select nam ...
- SQL语句查询某表的所有字段及数据类型
SQL语句查询某表的所有字段及数据类型 SELECT name AS column_name , TYPE_NAME(system_type_id) AS column_type , max_leng ...
- sql语句查询数据库表结构信息
开发中经常用到查询指定表及其字段的信息,以下是我整理的SQL语句查询方法,供自己平时使用也提供给大家参考! 1.适用MS SQL SERVER: SELECT 表名 = then d.name els ...
- 怎么用sql语句查询一个数据库有多少张表
今天在技术群中闲谈时忽然聊到一个问题,那就是当一个数据库中有多张表时怎么快速的获取到表的个数,从而给问询者一个准确的回答. 大家或许会说,这个问题和我们的数据库操作没有太大关系或者不是很挂钩,所以没意 ...
- 使用sql语句查询日期在一定时间内的数据
使用sql语句查询日期在一周内的数据 select * from ShopOrder where datediff(week,ordTime,getdate()-1)=0 //查询当天日期在一周年 ...
- SQL语句查询数据库的触发器、存储过程、视图以及表的SQL语句
Sql Server数据库用SQL语句查询方法如下: select name from sysobjects where xtype='TR' --所有触发器 select name from sys ...
随机推荐
- Scrum 实施中遇到的典型问题
Scrum实施过程中遇到的典型问题,答案综合了网络中的借鉴和自己实践中的体会. Q1:技术负债在敏捷团队中会快速的膨胀. A1:由于敏捷开发过程没有充足的事前(up-front)设计,技术负债是不可避 ...
- catalina_home与catalina_base
CATALINA_HOME是Tomcat的安装目 录,CATALINA_BASE是Tomcat的工作目录. 如果我们想要运行Tomcat的多个实例,但是不想安装多个Tomcat软件副本.那么我们可以配 ...
- fidder模拟post提交到PHP遇到的问题
http头必须带上Content-type: application/x-www-form-urlencoded 之后 ,php 才能接收到post数据 1. 用php://input可以很便捷的取 ...
- [测试技术分享]DNS域传送漏洞测试
DNS域传送漏洞测试 1.简介: DNS(Domain Name System)也叫域名管理系统,它它建立在一个分布式数据库基础之上,在这个数据库里,保存了IP地址和域名的相互映射关系.正因为DNS的 ...
- [Java基础] Java多线程-工具篇-BlockingQueue
转载自: http://www.cnblogs.com/jackyuj/archive/2010/11/24/1886553.html 前言: 在新增的Concurrent包中,BlockingQue ...
- iOS:创建静态库及其使用
本篇来自转载,原创链接为:http://my.oschina.net/leejan97/blog/284193 摘要: 静态库文件可以有效的将功能封装和细节隐藏 ios 静态库 static lib ...
- javascript快速入门26--XPath
XPath 简介 XPath 是一门在 XML 文档中查找信息的语言.XPath 可用来在 XML 文档中对元素和属性进行遍历.XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 ...
- 一起來玩鳥 Starling Framework(7)MovieClip
承上一篇,我們接著來講最後一個IAnimatable類別,MovieClip.Starling的MovieClip跟native的MovieClip不太一樣,它只能接收一個Vector.<Tex ...
- new Thread(new ThreadStart(this.StartServer))
Thread .new thUdpServer thUdpServer = new Thread(new ThreadStart(this.StartServer))
- DevExpress 15.1.sln
Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio VisualStudioVersion = 14 ...