知方可补不足~sqlserver中对xml类型字段的操作
在sqlserver中有很多种数据类型,而XML数据类型是比较新奇怪的一种格式,我们平常接触的可能比较少,用的也少,而在某些场合,使用XML类型可能会使我们的开发变简单,下面就是一种情况:
表test有字段Menu,它保存的信息可能有两种方式,对标准menu,扩展menu,自定义Menu等,而这些方式所需要的键/值是不同的,有些同学会说使用Json串来存储,这当然是一种很不错的方式,但是数据库并没有这种类型,所以在查询,聚合时非常困难,这些我们想到了xml格式,它是SQLSERVER的是一种数据类型,支持查询,聚合等操作,下面我们来学习一下.
1 XML字段结构如下
<WxPaymentConfig>
<demo>zhang</demo>
<price></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'
结果是我们所希望看到的
aaarticlea/png;base64,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" alt="" />
知方可补不足~sqlserver中对xml类型字段的操作的更多相关文章
- 知方可补不足~sqlserver中触发器的使用
回到目录 触发器在过去的10年中,即存储过程和ado.net称霸江湖期间是那么的重要,而现在,trigger显得不是那么必要的,我们很少将复杂的业务写在SQL里,当然也会没有机会写到trigger里了 ...
- 知方可补不足~sqlserver中使用sp_who查看sql的进程
回到目录 在SQLSERVER中每个会话,即每个查询分析器窗口都会产生一个SQL进程,对于那些持续时间短的进程,它们转瞬即失,而对于持续时间比较长的,我们需要希望查看它的运行状态,就可以借助SQL提供 ...
- 知方可补不足~Sqlserver中的几把锁和.net中的事务级别
回到目录 当数据表被事务锁定后,我们再进行select查询时,需要为with(锁选项)来查询信息,如果不加,select将会被阻塞,直到锁被释放,下面介绍几种SQL的锁选项 SQL的几把锁 NOLOC ...
- 知方可补不足~Sqlserver中的几把锁和.net中的事务级别 回到目录
当数据表被事务锁定后,我们再进行select查询时,需要为with(锁选项)来查询信息,如果不加,select将会被阻塞,直到锁被释放,下面介绍几种SQL的锁选项 SQL的几把锁 NOLOCK(不加锁 ...
- 知方可补不足~Sqlserver发布订阅与sql事务的关系
回到目录 前几讲说了一下通过sqlserver的发布与订阅来实现数据的同步,再通过EF这个ORM架构最终实现架构系统的读写分离,而在使用发布与订阅来实现数据同步时,需要我们注意几点,那就是当操作被使用 ...
- 知方可补不足~SQL中的count命令的一些优化措施(百万以上数据明显)
回到目录 SQL中对于求表记录总数的有count这个聚合命令,这个命令给我们感觉就是快,比一般的查询要快,但是,当你的数据表记录比较多时,如百万条,千万条时,对于count来说,就不是那么快了,我们需 ...
- 知方可补不足~SQL2008中的发布与订阅模式~续
回到目录 上一回介绍了如何在sql2008中建立一个数据库的发布者,今天来说一下如何建立一个订阅者,其实订阅者也是一个数据库,而这个数据库是和发布者的数据结构相同的库,它们之间通过SQL代理进行数据上 ...
- 知方可补不足~SqlServer自动备份数据库及清理备份文件
回到目录 对于SQLSERVER这个关系型数据库来说,为了保持数据的安全,备份是必须的,当你的一个误操作导致数据丢失,这可能是灾难性的,是不被允许发生的,这时,我们必须要做好定期的备份工作,如我们可以 ...
- 知方可补不足~SqlServer连接的复用MultipleActiveResultSets
回到目录 MultipleActiveResultSets可以使数据库连接复用,但当你上了moebius这种集群工具后,这个选项不能开启(默认是false),当你使用EF等ORM工具时,这个选项会默认 ...
随机推荐
- java三种实现线程的方法比较
1.继承Thread 2.实现Runnable 1和2的比较,1可以创建不同的任务,每个任务互不干扰,对于2,相当于只执行一个任务,多个任务之间互相影响,比如售票系统,每售出一张票,票数都要减1,这个 ...
- Hadoop学习笔记1-如何简单布署hadoop
企业机型配置: 选型标准:普通的,廉价的,标准的(容易替换的),工业化大规模生产的 CPU:支持多核CPU,如2个4核CPU 内存:16G以上,内存越大,常用数据都缓存在内存,提高速度 硬盘:不需RA ...
- win server 2008 r2 sharepoint 域环境安装经历
环境: 物理机:win7(x64,计算机名字:wyman-pc,ip:192.168.10.102) / sql server 2008 r2(x64) /VM10 虚拟机:win svr 2008 ...
- Hello.js – Web 服务授权的 JavaScript SDK
Hello.js 是一个客户端的 Javascript SDK,用于实现 OAuth2 认证(或者基于 OAuth 代理实现的 OAuth1)的 Web 服务和查询 REST API. HelloJS ...
- CutJS – 用于 HTML5 游戏开发的 2D 渲染引擎
CutJS 是轻量级的,快速的,基于 Canvas 开发的 HTML5 2D 渲染引擎,可以用于游戏开发.它是开源的,跨平台的,与现代的浏览器和移动设备兼容.CutJS 提供了一个类似 DOM 树的 ...
- 让你忘记 Flash 的15款精彩 HTML5 游戏
HTML5 游戏开发是一个热门的话题,开发人员和设计人员最近经常谈论到.虽然不能迅速取代 Flash 的地位,但是 HTML5 凭借它的开放性和强大的编程能力,取代 Flash 是必然的趋势.你会看到 ...
- HTML表格边框的设置小技巧
对于很多初学HTML的人来说,表格<table>是最常用的标签了,但对于表格边框的控制,很多初学者却不甚其解. 对于很多初学HTML的人来说,表格<table>是最常用的标签了 ...
- css小技巧,会不断更新的
1.去除input记住密码后自动填充表单的黄色背景 input:-webkit-autofill { -webkit-box-shadow: 0 0 0px 1000px #FFF inset; }/ ...
- SAP学习日志--RFC REMOTE FUNCTION CALL
RFC Remote function Call 远程功能调用, 是SAP系统之间以及非SAP系统之间程序通信的基本接口技术. 例如BAPI , ALE都是基于RFC实现的 SAP系统提供了三种外部 ...
- URL 路径长度限制(错误:指定的文件或文件夹名称太长)
本节讨论 URL 的构成.SharePoint 2010 构建 URL 的方式.URL 的编码和加长以及作为其他 URL 中的参数传递的方式. SharePoint URL 的构成 SharePoin ...