XML 101 - 第1天从t-sql中的XML节点获取信息无论金额如何
我在每行都有一个xml列。每一片xml都遵循相同的模板。我希望从节点提取信息,无论它有多少条目。
例子:
<CodeLists>
<CodeList CodeListID="FAC8BFB9-7C41-4647-A6DC-DF359379B8C3">
<Code Number="1">L1CCTT</Code>
<Code Number="2">L2CCTT</Code>
<Code Number="3">L3CCTT</Code>
</CodeList>
<CodeList CodeListID="F0328C4F-916B-414D-AA81-D59244A4F0E1">
<Code Number="1">16 to 18</Code>
<Code Number="2">19 to 25</Code>
<Code Number="3">26 to 49</Code>
<Code Number="4">50 plus</Code>
</CodeList>
我只希望返回L1CCTT,L2CCTT,L3CCTT。
然而,它的好处是,第二行的xml有多于或少于3个代码。
例子:
<CodeLists>
<CodeList CodeListID="DA730346-2425-439D-ABD0-7FFF1F16ED3E">
<Code CodeNumber="1">L1CCA</Code>
<Code CodeNumber="2">L2CCA</Code>
</CodeList>
<CodeList CodeListID="7B9731F5-C1B2-460D-B78F-F7C64A959022">
<Code CodeNumber="1">16 to 18</Code>
<Code CodeNumber="2">19 to 25</Code>
<Code CodeNumber="3">26 to 49</Code>
<Code CodeNumber="4">50 plus</Code>
</CodeList>
例子:
<CodeLists>
<CodeList CodeListID="74E6C8E2-BD88-4CB6-B578-DD25EC532CAA">
<Code Number="1">CIT33C</Code>
<Code Number="2">CIT32C</Code>
<Code Number="3">CIT31C</Code>
<Code Number="4">CIT30C</Code>
</CodeList>
<CodeList CodeListID="C6957FC8-F3B4-4DAE-A8D0-F79A253C5790">
<Code Number="1">16 to 18</Code>
<Code Number="2">19 to 25</Code>
<Code Number="3">26 to 49</Code>
<Code Number="4">50 plus</Code>
我公司生产的东西,但我开始从代码列表节点接收外界的东西,有没有运气与制定where子句或特定节点码。
列:专案编号,数据
SELECT [Data].value('(/CodeLists/CodeList/Code)[1]', 'varchar(4000)') [Code1]
,[Data].value('(/CodeLists/CodeList/Code)[2]', 'varchar(4000)') [Code2]
,[Data].value('(/CodeLists/CodeList/Code)[3]', 'varchar(4000)') [Code3]
,[Data].value('(/CodeLists/CodeList/Code)[4]', 'varchar(4000)') [Code4]
,[Data].value('(/CodeLists/CodeList/Code)[5]', 'varchar(4000)') [Code5]
FROM [dbo].Codes
WHERE ProjectID = 1
道歉,如果这是一个简单的任务,但任何帮助,将不胜感激。
这是为什么呢下来投票?无论如何,先生或女士Downvoter:你应该留下评论并解释你的理由。这是一个新用户。应该如何学会更好地做到这一点? +1从我身边... – Shnugo