sql – 使用LIKE或类似的全搜索操作搜索XML

前端之家收集整理的这篇文章主要介绍了sql – 使用LIKE或类似的全搜索操作搜索XML前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想搜索一个 XML值的列,看看是否包含一个字符串.我不知道架构,我想知道字符串是否包含在任何地方.我不知道XPATH是否会在这种情况下工作.

相当于

Select s.Name,ts.ValueXML from table t (nolock) 
join table2 ts (nolock) on t.key_Id = ts.key_Id
join table3 s (nolock) on ts.key_Id=s.key_Id
where s.Name like '%Lab%' and ts.ValueXML  like '%PreviewDateRange%'

ERROR: Argument data type xml is invalid for argument 1 of like
function.

相关ts表列

ValueXml(XML(.),null)

我正在搜索的项目应该是一个属性.所以如果上述不可能,那么包含该属性的东西就是一个很好的选择.

解决方法

最简单(但绝对不是最快执行)的方式是将您的列转换为nvarchar(max),然后再将其传递给:
cast(ValueXml as nvarchar(max)) like '%PreviewDateRange%'

猜你在找的MsSQL相关文章