【问题标题】:Extract value from XML column and use it inside WHERE clause从 XML 列中提取值并在 WHERE 子句中使用它
【发布时间】:2019-04-15 02:18:02
【问题描述】:

我在 oracle 和 MSSQL 数据库中都有以下 xml 类型的数据。

<row id="TT1308143CNF" xml:space="preserve">
  <c1>10</c1>
  <c2>1001</c2>
  <c3>DEBIT</c3>
  <c4>USD</c4>
  <c6>USD1000110010001</c6>
  <c7>60000.00</c7>
</row>

列类型是 XMLTYPE,我想根据提取值在 XML 中进行选择。

SELECT xmlrecord
FROM xxxx
WHERE extractvalue(xmlrecord,'/row/c4') = 'USD';

上述选择查询在Oracle数据库中运行良好,请您帮助我们在MSSQL数据库中实现同样的效果。

【问题讨论】:

    标签: sql-server xml oracle extract-value


    【解决方案1】:

    您可以像这样使用value() 函数:

    SELECT *
    FROM @t
    WHERE xmlrecord.value('(/row/c4)[1]', 'VARCHAR(100)') = 'USD'
    

    它假定 xmlrecord 是一个 xml 类型的列(或者你可以 CAST 它)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-03
      • 2012-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多