XML查询示例二

本文介绍了如何从XML列中提取数据,分别展示了使用VALUE和NODES两个方法的具体示例,如提取包括 FirstName、MiddleName、LastName 等个人信息,以及 Occupation、Education、HomeOwnerFlag 和 NumberCarsOwned 等生活状态信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,提取XML列,使用VALUE

;WITH XMLNAMESPACES ('http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey' AS ns)
SELECT FirstName, 
   MiddleName,
   LastName,
   Demographics.value('(/ns:IndividualSurvey/ns:Occupation)[1]','varchar(50)') AS Occupation,
   Demographics.value('(/ns:IndividualSurvey/ns:Education)[1]','varchar(50)') AS Education,
   Demographics.value('(/ns:IndividualSurvey/ns:HomeOwnerFlag)[1]','bit') AS HomeOwnerFlag,
   Demographics.value('(/ns:IndividualSurvey/ns:NumberCarsOwned)[1]','int') AS NumberCarsOwned
FROM Person.Person
WHERE BusinessEntityID = 10000
GO 


FirstName MiddleName LastName Occupation Education HomeOwnerFlag NumberCarsOwned
Haley C Mitchell Management Graduate Degree 0 4

 

2,提取XML列,使用NODES

;WITH XMLNAMESPACES ('http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey' AS ns)
SELECT FirstName, 
   MiddleName,
   LastName,
   C.value('ns:Occupation[1]','varchar(50)') AS Occupation,
   C.value('ns:Education[1]','varchar(50)') AS Education,
   C.value('ns:HomeOwnerFlag[1]','bit') AS HomeOwnerFlag,
   C.value('ns:NumberCarsOwned[1]','int') AS NumberCarsOwned
FROM Person.Person
CROSS APPLY Demographics.nodes('/ns:IndividualSurvey') AS T(C)
WHERE BusinessEntityID = 10000
GO 


FirstName MiddleName LastName Occupation Education HomeOwnerFlag NumberCarsOwned
Haley C Mitchell Management Graduate Degree 0 4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值