0

我在 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 数据库中实现相同的功能。

4

1 回答 1

2

您可以value()像这样使用该功能:

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

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

于 2018-11-12T11:12:36.487 回答