如何执行XQuery-tsql
我得到了这个XML如何执行XQuery-tsql,tsql,xquery,Tsql,Xquery,我得到了这个XML <ArrayOfGuid xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <guid>475B07C8-CDEA-4000-BAAE-485336190E10</guid> <guid>6E5B87BC-CF80-4AB2-939E-ED951FA604AB&
<ArrayOfGuid xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<guid>475B07C8-CDEA-4000-BAAE-485336190E10</guid>
<guid>6E5B87BC-CF80-4AB2-939E-ED951FA604AB</guid>
<guid>31BFDA60-3BB2-49DC-8C69-10F6E1B540CA</guid>
</ArrayOfGuid>
不知怎的,我被困住了
DECLARE @BatchGUID XML
SET @BatchGUID = '<ArrayOfGuid xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<guid>475B07C8-CDEA-4000-BAAE-485336190E10</guid>
<guid>6E5B87BC-CF80-4AB2-939E-ED951FA604AB</guid>
<guid>31BFDA60-3BB2-49DC-8C69-10F6E1B540CA</guid>
</ArrayOfGuid>'
DECLARE @t_xml TABLE
(
BatchGUID XML
)
INSERT INTO @t_xml
SELECT @BatchGUID
SELECT C.* FROM @t_xml
cross apply (select name.value('guid[1]', 'uniqueidentifier') as [BatchGUID]
from BatchGUID.nodes('//ArrayOfGuid/guid') as c(name)) as C
我需要知道我做错了什么
谢谢,你离得太近了
您的问题是您正在从guid
节点中选择guid[1]
节点的值。当然,guid
节点不包含任何子节点-您希望从该节点本身选择值(表示为
)
你是如此的接近
您的问题是您正在从guid
节点中选择guid[1]
节点的值。当然,guid
节点不包含任何子节点-您希望从该节点本身选择值(表示为
)
DECLARE @BatchGUID XML
SET @BatchGUID = '<ArrayOfGuid xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<guid>475B07C8-CDEA-4000-BAAE-485336190E10</guid>
<guid>6E5B87BC-CF80-4AB2-939E-ED951FA604AB</guid>
<guid>31BFDA60-3BB2-49DC-8C69-10F6E1B540CA</guid>
</ArrayOfGuid>'
DECLARE @t_xml TABLE
(
BatchGUID XML
)
INSERT INTO @t_xml
SELECT @BatchGUID
SELECT C.* FROM @t_xml
cross apply (select name.value('guid[1]', 'uniqueidentifier') as [BatchGUID]
from BatchGUID.nodes('//ArrayOfGuid/guid') as c(name)) as C
BatchGUID
NULL
NULL
NULL
SELECT C.* FROM @t_xml
cross apply (select name.value('.', 'uniqueidentifier') as [BatchGUID]
from @BatchGUID.nodes('//ArrayOfGuid/guid') as c(name)) as C