Извлеките значение из столбца XML и используйте его внутри предложения WHERE - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть данные типа xml ниже в базе данных oracle и MSSQL.

<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 на основе значения Extract.

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

Приведенный выше запрос на выборку отлично работает в базе данных Oracle, не могли бы вы помочь нам добиться того же в базе данных MSSQL.

1 Ответ

0 голосов
/ 12 ноября 2018

Вы можете использовать функцию value() следующим образом:

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

Предполагается, что xmlrecord является столбцом типа xml (или вы можете CAST его).

...