知方可补不足~sqlserver中对xml类型字段的操作

回到目录

在sqlserver中有很多种数据类型,而XML数据类型是比较新奇怪的一种格式,我们平常接触的可能比较少,用的也少,而在某些场合,使用XML类型可能会使我们的开发变简单,下面就是一种情况:

表test有字段Menu,它保存的信息可能有两种方式,对标准menu,扩展menu,自定义Menu等,而这些方式所需要的键/值是不同的,有些同学会说使用Json串来存储,这当然是一种很不错的方式,但是数据库并没有这种类型,所以在查询,聚合时非常困难,这些我们想到了xml格式,它是SQLSERVER的是一种数据类型,支持查询,聚合等操作,下面我们来学习一下.

1 XML字段结构如下

<WxPaymentConfig>
   <demo>zhang</demo>
   <price>1000</price>
</WxPaymentConfig>

2 查询数据,通过XML类型作为条件

SELECT *
FROM    demo
WHERE   Menu.value(‘(/WxPaymentConfig/demo)[1]‘, ‘nvarchar(50)‘) = ‘zhang‘

3 查询数据同时对它进行统计,即执行某些聚合操作

SELECT  SUM(Menu.value(‘(/WxPaymentConfig/price)[1]‘, ‘decimal‘))
FROM    demo
WHERE   Menu.value(‘(/WxPaymentConfig/demo)[1]‘, ‘nvarchar(50)‘) = ‘zhang‘

结果是我们所希望看到的

回到目录

时间: 2024-10-07 06:09:55

知方可补不足~sqlserver中对xml类型字段的操作的相关文章

知方可补不足~Sqlserver中的几把锁和.net中的事务级别

回到目录 当数据表被事务锁定后,我们再进行select查询时,需要为with(锁选项)来查询信息,如果不加,select将会被阻塞,直到锁被释放,下面介绍几种SQL的锁选项 SQL的几把锁 NOLOCK(不加锁) 此选项被选中时,SQL Server 在读取或修改数据时不加任何锁. 在这种情况下,用户有可能读取到未完成事务(Uncommited Transaction)或回滚(Roll Back)中的数据, 即所谓的“脏数据”. HOLDLOCK(保持锁) 此选项被选中时,SQL Server

知方可补不足~Sqlserver中的几把锁和.net中的事务级别 回到目录

当数据表被事务锁定后,我们再进行select查询时,需要为with(锁选项)来查询信息,如果不加,select将会被阻塞,直到锁被释放,下面介绍几种SQL的锁选项 SQL的几把锁 NOLOCK(不加锁) 此选项被选中时,SQL Server 在读取或修改数据时不加任何锁. 在这种情况下,用户有可能读取到未完成事务(Uncommited Transaction)或回滚(Roll Back)中的数据, 即所谓的“脏数据”. HOLDLOCK(保持锁) 此选项被选中时,SQL Server 会将此共享

知方可补不足~SqlServer连接的复用MultipleActiveResultSets

回到目录 MultipleActiveResultSets可以使数据库连接复用,但当你上了moebius这种集群工具后,这个选项不能开启(默认是false),当你使用EF等ORM工具时,这个选项会默认的加上了,它是为了改进程序的性能,好处就是怕数据库的连接资源被耗尽了,使用方法很简单,只需要把它加到数据的连接字符串中即可. 例如:server=(local);Integrated Security = true;database=test;MultipleActiveResultSets=tru

知方可补不足~用xsl来修饰xml

概念相关 XSL是可扩展样式表语言的外语缩写,是一种用于以可读格式呈现 XML(标准通用标记语言的子集)数据的语言. 起始于 XSL 万维网联盟(W3C)开始发展 XSL 的原因是:存在着对于基于 XML 的样式表语言的需求. CSS = HTML 样式表 HTML 使用预先定义的标签,每个标签的意义很容易被理解.HTML 中的 <table> 标签定义表格 - 并且浏览器清楚如何显示它.向 HTML 元素添加样式是很容易的.通过 CSS,很容易告知浏览器用特定的字体或颜色显示一个元素. XS

SqlServer 中 for xml path 相关

表结构: typename varchar(50) typedesc varchar(50) 示例 SQL 语句: SELECT '{"'+TypeName, '":"', TypeDesc + '"}',',' FROM dbo.SYS_DicEnumType FOR XML PATH('') 这样就可以得到一个比较接近 JSON 格式的字符串,如下: {"Gender":"性别"},{"Degree":

sqlserver中对时间类型的字段转换

获取当前日期利用 convert 来转换成我们需要的datetime格式. select CONVERT(varchar(12) , getdate(), 112 ) 20040912------------------------------------------------------------ select CONVERT(varchar(12) , getdate(), 102 ) 2004.09.12-----------------------------------------

SQL 2005 中的XML类型 .

SQL 2005 中的XML类型 . http://blog.csdn.net/sgear/article/details/7349657 SQL Server 2005的XmL数据类型之基础篇一.引言如今,在SQL Server 2005中,XML成为第一流的数据类型.借助于基于XML模式的强类型化支持和基于服务器端的XML数据校验功能,现在,开发者可以对存储的XML文档进行轻松的远程修改.作为数据库开发者,许多人都必须大量地涉及XML. 如今,在SQL Server 2005中,你能以一种新

sqlserver中对xml进行操作

1 --1.创建xml测试数据库表Xml_Table 2 use Fly_Test --测试数据库 3 go 4 5 create table Xml_Table(ID INT identity PRIMARY KEY, XmlData XML); 6 --2.插入测试数据 7 insert into Xml_Table(XmlData) values 8 ('<book id="0001"> 9 <title>SqlServer2005</title&g

Oracle中对XML格式数据的操作,CLOB类型转换XMLType类型

今天遇到个问题,关于Oracle中xml格式数据的操作. 问题记录:需求上明确该字段类型为xmltype,要做的是解析该字段,但是由于数据库设计人员的问题,某些表中的该字段类型设计成了Clob类型. 解决方法: xmltype类型解析很容易:使用extractvalue函数即可,用法: select column_name1,column_name2,extractvalue(column_name3,'/nodeName1/nodeName2/nodeName3') from table; c