select *
from tablename
where CONVERT(xml, Sections).value('(/sections/section/@value)[1]', 'varchar(1)') = 'f'
правильно извлечет запись со следующим значением в столбце Разделы:
<sections><section value="f" priority="4" /><section value="a" priority="4" /></sections>
Но пропускает это:
<sections><section value="w" priority="4" /><section value="f" priority="4" /></sections>
Очевидно, что это проблема "/sections/section/@value)[1]
", но я не понимаю синтаксис, и Google не слишком помог. Я нашел некоторый код, который позволил мне зайти так далеко, но я не знаю, как его изменить, чтобы он просматривал все теги, а не только первый. Я попытался сбросить [1]
, но это дало следующую ошибку:
XQuery [value()]: 'value()' requires a singleton (or empty sequence), found operand of type 'xdt:untypedAtomic *'