加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 16:44:44 所属栏目:MsSql教程 来源:网络整理
导读:我想搜索一个 XML值的列,看看是否包含一个字符串.我不知道架构,我想知道字符串是否包含在任何地方.我不知道XPATH是否会在这种情况下工作. 相当于 Select s.Name,ts.ValueXML from table t (nolock) join table2 ts (nolock) on t.key_Id = ts.key_Idjoin tabl
我想搜索一个 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%'

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读