查询存贮在表中的XML的结点值。
来源:互联网 发布:淘宝助手mac版下载 编辑:程序博客网 时间:2024/05/18 14:12
--查询一个类型为XML的字段的值. 且只查这个XML字段值中的某一个结点的值。
--如果结点中有一个结点有多组值的查询方法如下:
--构造数据declare @xmlField1 xml, @xmlField2 xmlset @xmlField1 = '<Publish xmlns="http://soa.OTHTest.com/SOA/USA/InfrastructureService/V30/PubSubService"> <Node> <MessageHead> <Version>1.0</Version> </MessageHead> </Node></Publish>'set @xmlField2 = '<Publish xmlns="http://soa.OTHTest.com/SOA/USA/InfrastructureService/V30/PubSubService"> <Node> <MessageHead> <Version>2.0</Version> </MessageHead> </Node></Publish>'declare @Table1 table( ID int , Name char(10), Msg xml )insert into @Table1select 1, 'Mary', @xmlField1union allselect 2, 'Nancy', @xmlField2select * from @Table1--查询XML字段中的xml的结点值。
--引用的命名空间写在里面select top 1 Msg, Msg.value('declare default element namespace "http://soa.OTHTest.com/SOA/USA/InfrastructureService/V30/PubSubService"; (/Publish/Node/MessageHead/Version)[1]',N'char(3)') as version1 from @Table1--引用的命名空间用with语句写在查询语句外面;with xmlnamespaces(default N'http://soa.OTHTest.com/SOA/USA/InfrastructureService/V30/PubSubService') select top 1 Msg, Msg.value('(/Publish/Node/MessageHead/Version)[1]',N'char(3)') as version1 from @Table1
--查询一个类型为XML的字段中的XML中的结点值。
select top 1 SSBMessage, SSBMessage.value('declare default element namespace "http://soa.OTHTest..com/SOA/USA/InfrastructureService/V30/PubSubService"; (/Publish/Node/MessageHead/Version)[1]',N'char(3)') as version1 from dbo.LogForUser with(nolock);with xmlnamespaces(default N'http://soa.OTHTest..com/SOA/USA/InfrastructureService/V30/PubSubService') select top 1 SSBMessage, SSBMessage.value('(/Publish/Node/MessageHead/Version)[1]',N'char(3)') as version1 from dbo.LogForUser with(nolock) --xml字段作为哪里条件的写法:;WITH XMLNAMESPACES (DEFAULT 'http://soa.OTHTest..com/SOA/USA/InfrastructureService/V30/PubSubService')select top 10 *from dbo.LogForUser with(nolock)where Indate > '2011/10/24 18:38'and ssbMessage.value('(/Publish/Node/MessageHead/TransactionCode/text())[1]', 'VARCHAR(20)') = '09-102-0-846'and ssbMessage.value('(Publish/Node/MessageHead/Action/text())[1]','VARCHAR(20)') = 'SendMessage'and ssbMessage.value('(Publish/Node/MessageHead/SellerID/text())[1]','VARCHAR(20)') = 'A001'order by indate desc
--如果结点中有一个结点有多组值的查询方法如下:
declare @table1 table(id int identity, name varchar(50), courses xml )insert @table1(name,courses )select 'Angelia', '<info> <T_Grade>300</T_Grade> <Rank>13</Rank> <courses> <score> <Times>first</Times> <math>98</math> <language>88</language> </score> <score> <Times>second</Times> <math>90</math> <language>87</language> </score> <score> <Times>third</Times> <math>88</math> <language>97</language> </score> </courses> </info>'union allselect 'Mary', '<info> <T_Grade>280</T_Grade> <Rank>25</Rank> <courses> <score> <Times>first</Times> <math>67</math> <language>76</language> </score> <score> <Times>second</Times> <math>78</math> <language>77</language> </score> <score> <Times>third</Times> <math>76</math> <language>80</language> </score> </courses> </info>'select * from @table1--查询XML中的结点select id ,name,TotalGrade = courses.value('(/info/T_Grade/text())[1]','int'),[Rank]= courses.value('(/info/Rank/text())[1]','int')from @table1--查询结点中结点中有多组数据select id ,name,TotalGrade = courses.value('(/info/T_Grade/text())[1]','int'),[Rank]= courses.value('(/info/Rank/text())[1]','int'),b.Times,b.math,b.[language]from @table1 across apply( select Times = subjects.value('(Times/text())[1]','varchar(10)') ,math = subjects.value('(math/text())[1]','int') ,[language] = subjects.value('(language/text())[1]','int') from a.courses.nodes('/info/courses/score') subjectsList(subjects))b
- 查询存贮在表中的XML的结点值。
- Linq To XML:在结点下查询某一类型结点
- 使用指针递增存贮在其他变量中的值
- 虚拟存贮技术在信息管理中的意义
- 如何使用XML格式的参数在SQL server的存贮过程中。
- xml结点的遍历
- 怎样有选择的读取XML中的各结点数据
- 线性表的链式存贮及实现
- 关于在数据库中存贮换行符的问题
- text,varchar,char 在存贮长度方面个人的理解
- 假设在长度大于1的循环链表中,即无头结点也无头指针,s为指向链表中的某个结点的指针,试编写算法删除结点s的前驱结点
- 删除链表中的重复的结点
- 在表尾插入新的结点
- xml结点的增加修改
- select 的选择更新xml的某一结点的值
- 用XML结点的属性值查找相同结点的其它属性值[C#]
- 建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中。
- 建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中
- 内存管理的粗浅认识
- DBID,SID,DB_NAME,DB_DOMAIN,INSTANCE_NAME,DB_UNIQUE_NAME,SERVICE_NAMES 及监听参数的说明
- querySelector & querySelectorAll --像CSS一样选择DOM
- 各国城市风情
- Javascript的兴起是否意味着LAMP的终结
- 查询存贮在表中的XML的结点值。
- Multilingual corpus
- 64位 linux 平台下Oracle 安装文档
- 最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用38
- Google的Dart语言真的能取代JavaScript吗
- js 一些使用小例子 ,暂时写这么一点,以后补充
- 什么是Node?
- 改 主机名 后 虚拟机 不能启动
- Think Diffrent