【问题标题】:Concat xml node values in MS SQLMS SQL 中的 Concat xml 节点值
【发布时间】:2017-05-31 03:59:55
【问题描述】:

我需要获取多个key的用户的childnode值,如下图:

<Individuals>
    <User key="0">
        <UserlID>100</UserlID>
        <FirstName>John Doe</FirstName>
    </User>
    <User key="1">
        <UserlID>101</UserlID>
        <FirstName>Jane Doe</FirstName>
    </User>
    <User key="2">
        <UserlID>102</UserlID>
        <FirstName>Jack Black</FirstName>
    </User>
</Individuals>

我想要的结果要么是三行所有键-s UserID-s,要么是一行连接所有三个键UserID-s。 key 的数量是可变的,可能不止三个。

已设法获取静态 UserID 值:

SELECT
   [UserID] = A.XmlField.value('(Individuals/User[@key=2]/UserlID)[1]', 'Int')
FROM [MyTable] As A

但问题是我无法获取所有用户 ID

【问题讨论】:

    标签: sql sql-server xml sql-server-2012


    【解决方案1】:

    你可以这样做:

    SELECT u.value('UserlID[1]', 'int') as UserlID
      FROM MyTable CROSS APPLY XmlField.nodes('/Individuals/User') i(u)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-24
      • 1970-01-01
      • 2017-08-29
      • 2013-07-29
      • 1970-01-01
      • 2022-07-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多