sql - XPath 根据 SQL Server xml 中的属性 'A' 获取属性 'B' 的值

标签 sql xml sql-server-2008 xpath

我在 SQL Server 中有这个 XML

<data>
<add key="images" value="image/path/img.gif" />
<data>

我想选择每个“添加”节点的值属性,键为“images”

我现在拥有的是:

SELECT ID, Data from Items 
where Data.value('(//data/add[@key="images"]/@value)[1]', 'nvarchar') Like '%img%'

有什么建议吗?

最佳答案

如果您只是为从 XML 中检索到的 nvarchar 指定一个大小,那么您所拥有的就可以正常工作。

SELECT ID, Data
from Items 
where Data.value('(//data/add[@key="images"]/@value)[1]', 'nvarchar(100)') Like '%img%'

我在这里指定了 100,您可以将其设置为更适合您情况的值。如果没有大小,该列的大小将为 1

关于sql - XPath 根据 SQL Server xml 中的属性 'A' 获取属性 'B' 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8788207/

相关文章:

c# - OrmLite插入0而不是自动递增主键

sql - rails : How to query for rows by subtracting column value from datetime column?

sql - 如何在 SQL 中将 GPS 格式的时间转换为本地时间格式?

mysql - SQL:设置 AVG() 时上一列为空

c# - 为什么在 Visual Studio 2010 中保存 xml 文件非常慢?

xml - 如何从 XPath 中的标记中选择一个未知层数的节点?

c# - 验证元素的未转义长度

c# - 如何将DropDownList选定的值分配给SqlDataSource?

sql-server-2008 - 回收 SQL Server 2008 中未使用的空间

MYSQL使用Order by排序