我在SQL Server中有这个XML
<data>
<add key="images" value="image/path/img.gif" />
<data>
我想用key =“images”
选择每个“add”节点的value属性我现在拥有的是:
SELECT ID, Data from Items
where Data.value('(//data/add[@key="images"]/@value)[1]', 'nvarchar') Like '%img%'
有什么建议吗?
答案 0 :(得分:4)
如果您只是指定从XML检索到的nvarchar
的大小,那么您的工作正常。
SELECT ID, Data
from Items
where Data.value('(//data/add[@key="images"]/@value)[1]', 'nvarchar(100)') Like '%img%'
我已指定100
您可以将其设置为更适合您情况的内容。如果没有大小,列的大小将为1
。
答案 1 :(得分:2)
使用此XPath表达式:
(//data
/add
[@key="images"]
/@value
[contains(.,"img")]
)
[1]