为了账号安全,请及时绑定邮箱和手机立即绑定

如何查询SQL Server XML列中的值

如何查询SQL Server XML列中的值

HUX布斯 2019-08-16 15:06:22
如何查询SQL Server XML列中的值我跟踪存储在RolesSQL Server数据库中的XML列(称为)中的XML 。<root>    <role>Alpha</role>    <role>Beta</role>    <role>Gamma</role></root>我想列出在其中具有特定角色的所有行。此角色由参数传递。
查看完整描述

3 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

declare @T table(Roles xml)insert into @T values('<root>
   <role>Alpha</role>
   <role>Beta</role>
   <role>Gamma</role>
</root>')declare @Role varchar(10)set @Role = 'Beta'select Rolesfrom @Twhere Roles.exist('/root/role/text()[. = sql:variable("@Role")]') = 1

如果您希望查询能够正常where col like '%Beta%'使用contains

declare @T table(Roles xml)insert into @T values('<root>
   <role>Alpha</role>
   <role>Beta</role>
   <role>Gamma</role>
</root>')declare @Role varchar(10)set @Role = 'et'select Rolesfrom @Twhere Roles.exist('/root/role/text()[contains(., sql:variable("@Role"))]') = 1


查看完整回答
反对 回复 2019-08-16
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

如果您的字段名称是角色,而表名是table1,您可以使用以下搜索

DECLARE @Role varchar(50);SELECT * FROM table1
WHERE Roles.exist ('/root/role = sql:variable("@Role")') = 1


查看完整回答
反对 回复 2019-08-16
  • 3 回答
  • 0 关注
  • 978 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信