- 1、本文档共47页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.XQuery查询 SQL Server 2008支持的XQuery基本语法中除了能够使用Xpath路径表达式进行查询外,还包含一个通用标准格式:FLWOR表达式。FLWOR是“For,Let,Where,Order by,Return”的缩写。以下示例说明了FLWOR的用法(假设book元素是根元素): for $x in doc(note.xml)/book/note let $y :=/book/note/to where $x/number20 order by $x/brand return $x/brand ? 【例10.11】 查询xml文档中age元素小于20的name元素的数据。 DECLARE @xmldoc xml SET @xmldoc=class student number=081101 name王林/namesex男/sexage20/age /student student number=081102 name王燕/namesex女/sexage19/age /student student number=081103 name程明/namesex男/sexage18/age /student /class SELECT @xmldoc.query(/class/student[age20]) 执行结果如图10.10所示。 图10.10 例10.11中查询age元素小于20的XML数据 【例10.12】 使用FLWOR表达式查询XML数据。 DECLARE @x XML SET @x=ManuInstructions ProductModelID=1 ProductModelName=SomeBike Location LocationID=L1 StepManu step 1 at Loc 1/Step StepManu step 2 at Loc 1/Step StepManu step 3 at Loc 1/Step /Location Location LocationID=L2 StepManu step 1 at Loc 2/Step StepManu step 2 at Loc 2/Step StepManu step 3 at Loc 2/Step /Location /ManuInstructions SELECT @x.query( for $step in /ManuInstructions/Location[1]/Step return string($step) ) 执行结果如图10.11所示。 图10.11 例10.12中FLWOR表达式的使用 在SELECT语句中使用FOR XML子句可以将SQL Server 2008中表的数据检索出来并自动生成XML格式。语法格式: FOR XML { { RAW [ ( ElementName ) ] | AUTO } [ CommonDirectives [ , { XMLDATA | XMLSCHEMA [ ( TargetNameSpaceURI ) ] } ] [ , ELEMENTS [ XSINIL | ABSENT ] ] | EXPLICIT [ CommonDirectives [ , XMLDATA ] ] | PATH [ ( ElementName ) ] [CommonDirectives [ , ELEMENTS [ XSINIL | ABSENT ] ] ] } ? CommonDirectives ::= [ , BINARY BASE64 ] [ , TYPE ] [ , ROOT [ ( RootName ) ]] 1.FOR XML RAW FOR XML RAW是FOR XML查询模式中最简单的一种。它获得查询结果并将结果集内的每一行转换为以一般标识符row /作为元素标记的XML元素。在默认情况下,RAW模式下元素名称为row,结果集中非空的列值将映射为row元素的一个属性,即row元素的属性名称为列名或列别名。如果需要定义别的元素名称,则可以使用ElementName来指定。 RAW模式下可以使用以下选项。 BINARY BASE64:指定查询返回二进制base64编码格式的二进制数据。 TYPE:指定查询以XML类型返回结果。 ROOT [(RootName)]:指定将一个根元素添加到结果XML中。可以指定要使用RootName生成的
文档评论(0)