用来从XML数据类型的字段抽取数据的语言称为XQuery.
首先,新建一个数据库:
在表中插入数据:
INSERT INTO [XMLStudy].[dbo].[PurchaseOrders] ([PurchaseID] ,[PurchaseOrder]) VALUES (2, ' My Style" author=" Discuz!NT" createdate = " 2008-5-27" ver=" 2.5" fordntver=" 2.5" copyright=" Copyright 2008 Comsenz Inc." /> ' ) GO
INSERT INTO [XMLStudy].[dbo].[PurchaseOrders] ([PurchaseID] ,[PurchaseOrder]) VALUES (1, ' beijing2008" author=" Discuz!NT" createdate=" 2008-7-2" ver=" 2.5" fordntver=" 2.5" copyright=" Copyright 2008 Comsenz Inc." /> ' ) GO
接下来介绍如何使用 XPath表达式来抽取订单的信息。
SELECT PurchaseOrder.query('/about') as Result from PurchaseOrders
查询结果就是 PurchaseOrder列中 “about”直接的内容。
当然,还可以查询下一个结点的内容:
SELECT PurchaseOrder.query('/about/template') as Result from PurchaseOrders
为了进一步的获取具体的内容,可以使用下面的SQL语句:
SELECT PurchaseOrder.query('/about/template/author/text()') as Result from PurchaseOrders
查询 没有结果,空白!
这个是因为 XML 需要是这个的。
beijing2008" > Discuz!NT " 2008-7-2" " 2.5" " 2.5" " Copyright 2008 Comsenz Inc."
再次查询:
从上面的语句中可以看到,使用不同的 XPath表达式,获得了XML中不同节点的内容,Xpath指定了查询的路径,其中text()函数是Xpath函数,返回包含在XML元素中的值。
XQUERY还可以结合where 使用!!!