select *
from tablename
where CONVERT(xml, Sections).value('(/sections/section/@value)[1]', 'varchar(1)') = 'f'
将在 Sections 列中正确检索具有以下值的记录:
<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]
”,但我不理解语法,谷歌也没有太大帮助。我找到了一些让我走到这一步的代码,但我不知道如何修改它,以便它会查看所有标签,而不仅仅是第一个标签。我尝试删除[1]
但出现以下错误:
XQuery [value()]: 'value()' requires a singleton (or empty sequence), found operand of type 'xdt:untypedAtomic *'