xml类型转换列表显示 SQL查询
数据库中存在字段类型为xml 的数据,
现举例 xml 字段存储的数据为:
<MortgageInfoShipList>
<ITEMS>
<ITEM>
<ShipName>船名2</ShipName>
<Location>处所2</Location>
<RegisterLocation>船籍港2</RegisterLocation>
<ShipType>类型2</ShipType>
<ReadNum>识别号2</ReadNum>
<RegisterNum>登记号2</RegisterNum>
<CallNum>呼号2</CallNum>
<InsuranceNum>单号2</InsuranceNum>
<InsuranceTime>2016-08-22至2016-08-22</InsuranceTime>
<Weight>12</Weight>
<Age>12</Age>
<Owner>hqq1</Owner>
</ITEM>
<ITEM>
<ShipName>船名1</ShipName>
<Location>处所1</Location>
<RegisterLocation>船籍港1</RegisterLocation>
<ShipType>类型1</ShipType>
<ReadNum>识别号1</ReadNum>
<RegisterNum>登记号1</RegisterNum>
<CallNum>呼号1</CallNum>
<InsuranceNum>单号1</InsuranceNum>
<InsuranceTime>2016-08-22至2016-08-22</InsuranceTime>
<Weight>10</Weight>
<Age>11</Age>
<Owner>hqq</Owner>
</ITEM>
</ITEMS>
</MortgageInfoShipList>
==============要将他显示为列表===================
注意:因为数据库中存储的xml 类型没有版本号和编码格式,所以转换之前要先拼接下 ‘<?xml version="1.0" encoding="gb2312" ?>’
--抵押物信息
DECLARE @idoc int
DECLARE @doc varchar(max)
SET @doc =(SELECT '<?xml version="1.0" encoding="gb2312" ?>'+ RTRIM(CAST(cast(MortgageInfoShip as varchar(8000)) as VARCHAR(max))) FROM CustomerExt WHERE CustCode='BL1608050936214438')
--Create an internal representation of the XML document.
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
-- SELECT stmt using OPENXML rowset provider
SELECT ROW_NUMBER()over(order by InsuranceTime) AS Rows,*
FROM OPENXML (@idoc, '/MortgageInfoShipList/ITEMS/ITEM',2)
WITH (
ShipName VARCHAR(20) ,--船名
ShipType VARCHAR(20),--船类型
ReadNum VARCHAR(20) ,--识别号
RegisterNum VARCHAR(20),--注册号
RegisterLocation VARCHAR(30) ,--船籍港
InsuranceTime VARCHAR(30))
EXEC sp_xml_removedocument @idoc
查询后

xml类型转换列表显示 SQL查询的更多相关文章
- Mybatis中的Mapper.xml映射文件sql查询接收多个参数
我们都知道,在Mybatis中的Mapper.xml映射文件可以定制动态SQL,在dao层定义的接口中定义的参数传到xml文件中之后,在查询之前mybatis会对其进行动态解析,通常使用#{}接收 ...
- SQL Server2005中使用XML-数据类型、查询与修改
SQL 2005引进了XML数据类型,可以直接将XML当作字符串直接存入该列. 这样可以不需要对它进行XML解析. USE AdventureWorks -- 创建一个送货排程表 CREATE TAB ...
- 提高SQL查询效率(SQL优化)
要提高SQL查询效率where语句条件的先后次序应如何写 http://blog.csdn.net/sforiz/article/details/5345359 我们要做到不但会写SQL,还要做到 ...
- Hibernated的sql查询
记录一下学习Hibernate的心得 1.为什么HIbernate会支持原生态的sql查询? HQL查询语句虽然方便我们查询,但是基于HQL的查询会将查询出来的对象保存到hibernate的缓存当中, ...
- 15个初学者必看的基础SQL查询语句
本文由码农网 – 小峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划! 本文将分享15个初学者必看的基础SQL查询语句,都很基础,但是你不一定都会,所以好好看看吧. 1.创建表和数据插 ...
- hibernate将本地SQL查询结果封装成对象
hibernate将本地SQL查询结果封装成对象 不知道大家有没有碰过这种情况,迫于很多情况只能用native SQL来查询(如:复杂统计等),然而使用native查询后,结果会被放到object里, ...
- SQL查询性能分析
http://blog.csdn.net/dba_huangzj/article/details/8300784 SQL查询性能的好坏直接影响到整个数据库的价值,对此,必须郑重对待. SQL Serv ...
- 提高SQL查询效率的常用方法
提高SQL查询效率的常用方法 (1)选择最有效率的表名顺序(只在基于规则的优化器中有效): Oracle的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driv ...
- 13.hibernate的native sql查询(转自xiaoluo501395377)
hibernate的native sql查询 在我们的hibernate中,除了我们常用的HQL查询以外,还非常好的支持了原生的SQL查询,那么我们既然使用了hibernate,为什么不都采用hi ...
随机推荐
- ORACLE odbc驱动相关
驱动下载 http://www.oracle.com/technetwork/topics/winsoft-085727.html http://www.oracle.com/technetwork/ ...
- js 设置导航固定
<div id="nav"> .... </div> function Add_Data() { var top = $("#header-nav ...
- CodeSmith批量生成实体
保存以下文件为ModelBatch.cst <%@ Register Name="Model" Template="D:\Q\web\LHWYVISIT\trunk ...
- C# Expression表达式笔记
整理了一下表达式树的一些东西,入门足够了 先从ConstantExpression 开始一步一步的来吧 它表示具有常量值的表达式 我们选建一个控制台应用程序 ConstantExpression _ ...
- Java编译时出现No enclosing instance of type XXX is accessible.
今天在编译Java程序的时候出现以下错误: No enclosing instance of type Main is accessible. Must qualify the allocation ...
- jquery $提示缺少对象$提示缺少对象
jquery $提示缺少对象 项目中存在不同版本的jquery,有1.4也有1.2, 之前运行项目不会报错 " $提示缺少对象 ",但是我的IE9重置之后就报错,从网上找了一大堆, ...
- discuz开发学习
2014年3月24日 10:36:10 遇到一个问题,discuz 缓存的样式,没有自动生成.后来去后台 进行操作才有效. 解决了之前的遇到的 首页没有套用样式的问题. 现在的问题是 模版的扩展图片 ...
- Mysql和Oracle的一些语法区别
作为一个有追求的程序猿,当然要不断的学习,巴拉巴拉巴拉...好了,贴一个网址给大家,哈哈 MySQL与Oracle 差异比较:http://www.cnblogs.com/HondaHsu/p/364 ...
- SVN:cannot map the project with svn provider解决办法
转自:http://www.blogjava.net/jzone/articles/337697.html 首先,叙述一下令人蛋疼的情况,纠结了我几个小时,更新Workspace原有的项目,显示更新成 ...
- 关于mysql中触发器old和new如何更好的区别我有话要说?
1.当使用insert语句的时候,如果原表中没有数据的话,那么对于插入数据后表来说新插入的那条数据就是new,如图所示: 2.当使用delete语句的时候,删除的那一条数据相对于删除数据后表的数据来说 ...