SQL Server 2008中有关XML的新功能(4)
作者:戴羽 来源:IT专家网 发布时间:2008-06-04 12:57:00
标签:SQL,Server,sql,2008,xml
4 增强了XQuery
SQL Server 2005推出了xml 数据类型,它提供了一些你可以使用的方法来对存储在一个列或变量中的XML数据进行操作。你可以执行的大多数操作都使用XQuery语法来操纵和使用XML数据。SQL Server 2005所支持的XQuery 语法包括被称作FLWOR 表达式的for、where、order by和return 条件子句,你可以使用它来循环迭代一个XML文档的节点和返回结果值。
SQL Server 2008增加了对let条件子句的支持,它是用来在XQuery表达式中对变量进行赋值的,例如下面的示例:
declare @x xml
set @x=
'<Invoices>
<Invoice>
<Customer>Kim Abercrombie</Customer>
<Items>
<Item ProductID="2" Price="1.99" Quantity="1" />
<Item ProductID="3" Price="2.99" Quantity="2" />
<Item ProductID="5" Price="1.99" Quantity="1" />
</Items>
</Invoice>
<Invoice>
<Customer>Margaret Smith</Customer>
<Items>
<Item ProductID="2" Price="1.99" Quantity="1"/>
</Items>
</Invoice>
</Invoices>'
SELECT @x.query(
'<Orders>
{
for $invoice in /Invoices/Invoice
let $count :=count($invoice/Items/Item)
order by $count
return
<Order>
{$invoice/Customer}
<ItemCount>{$count}</ItemCount>
</Order>
}
</Orders>')
这个例子返回下面的XML:
<Orders>
<Order>
<Customer>Margaret Smith</Customer>
<ItemCount>1</ItemCount>
</Order>
<Order>
<Customer>Kim Abercrombie</Customer>
<ItemCount>3</ItemCount>
</Order>
</Orders>
要注意SQL Server 2008不允许对构造元素赋值。


猜你喜欢
- 华为2019在线笔试题,现整理如下,以供之后参考GitHub题目介绍####################################
- 一、序言本文承接[Mybatis缓存体系探究],提供基于MybatisPlus技术可用于生产环境下的二级缓存解决方案。1、前置条件掌握MyB
- 本文实例讲述了Python面向对象之继承和多态用法。分享给大家供大家参考,具体如下:Python 类的继承和多态Python 类的继承在OO
- 首字母为英文和下划线,其它部分则可以是英文、数字和下划线(即:_),而变量名称是区分大小写,即变量temp与Temp为不同变量。变量的基本用
- 演示技术栈这次用到了关于css的一些功能,和jQuery。CSS3中添加的新属性animation是用来为元素实现动画效果的,但是anima
- 安装Pycharm进行Python开发时,经常右下角提示No R interpreter defined,处理方式:1、安装R,然后将R的路
- 我们知道为了提高代码的运行速度,我们需要对书写的python代码进行性能测试,而代码性能的高低的直接反馈是电脑运行代码所需要的时间。这里将介
- 小编使用python中的django框架来完成!1,首先用pycharm创建django项目并配置相关环境这里小编默认项目都会创建setti
- 本文实例为大家分享了PyQt5实现画布小程序的具体代码,供大家参考,具体内容如下实现的效果图如下:该实例中,涉及到的知识点有:1.PyQt5
- vue 使用微信jssdk1、引入weixin-js-sdknpm install weixin-js-sdk使用文档 https://ww
- PyQt5+requests实现一个车票查询工具,供大家参考,具体内容如下结构图效果图思路1、search(QPushButton)点击信号
- 本文实例讲述了MySQL 事务概念与用法。分享给大家供大家参考,具体如下:事务的概念MySQL事务是一个或者多个的数据库操作,要么全部执行成
- 1.首先,我们需要过滤所有客户端提交的内容,其中包括?id=N一类,另外还有提交的html代码中的操作数据库的select及asp文件操作语
- 前言查询信息的来源如果来自多张表,则必须对这些表进行连接查询。连接是把不同表的记录连到一起的最普遍的方法,通过连接查询可将多个表作为一个表进
- document.cookie="userId=828"; 如果要一次存储多个名/值对,可以使用分号加空格(; )隔开,
- 创建表create table 表名create table if not exists 表名mysql> create databa
- 串口简述异步串行是指UART(Universal Asynchronous Receiver/Transmitter),通用异步接收/发送。
- 简介虽然使用Explain不能够马上调优我们的SQL,它也不能给予我们一些调整建议,但是它能够让我们了解MySQL 优化器是如何执行SQL
- 导入CSV文件导入数据的步骤 ①打开xxx.csv文件②首先读取文件头③然后读取剩余头④当发生错误时抛出异常读取完所有内容后,打印文件头和剩
- zip即将多个可迭代对象组合为一个可迭代的对象,每次组合时都取出对应顺序的对象元素组合为元组,直到最少的对象中元素全部被组合,剩余的其他对象