首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从XML列返回多个类别值

从XML列返回多个类别值
EN

Stack Overflow用户
提问于 2020-06-09 01:05:23
回答 1查看 22关注 0票数 0
代码语言:javascript
复制
`<cassettes>
 <cassette>
    <cassetteId>A</cassetteId>
    <capacity>290</capacity>
    <denominations>
      <denomination>
        <value>1</value>
        <currency>US</currency>
        <notesAvailable>398</notesAvailable>
        <notesToDispense>24</notesToDispense>
        <notesDispensed>24</notesDispensed>
        <notesDeposited>0</notesDeposited>
        <notesSuggested>398</notesSuggested>
      </denomination>
    </denominations>
    <status>0</status>
    <position>0</position>
  </cassette>...`

上面是xml列值的摘录。有问题的数量的节点是"notesdispensesed".There是12个cassetteId的A-K。每盒磁带都有一种面额。例如:盒式磁带A和B包含1,盒式磁带C包含5,盒式磁带D&E包含10,等等。

下面的select stmt为cassetteId A返回值24。我正在努力避免为每个磁带写出12次。有没有办法根据面值返还配给金额?任何解决方案都非常受欢迎。

代码语言:javascript
复制
Select column.value('(/cassettes/cassette/denominations/denomination/notesDispensed)[1]','varchar(max)') 
EN

回答 1

Stack Overflow用户

发布于 2020-06-10 02:03:01

这看起来像您使用sql:variable要找的东西吗?

代码语言:javascript
复制
DECLARE @iterator = 1

SELECT 
    Child.value('(/cassettes/cassette/denominations/denomination/notesDispensed)[1]', 'varchar(max)'),
FROM
    XMLField.nodes("/cassettes/denomination[sql:variable("@iterator")]/ChildNode") AS N(Child)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62267473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档