如何查询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
慕哥9229398
TA贡献1877条经验 获得超6个赞
如果您的字段名称是角色,而表名是table1,您可以使用以下搜索
DECLARE @Role varchar(50);SELECT * FROM table1 WHERE Roles.exist ('/root/role = sql:variable("@Role")') = 1
- 3 回答
- 0 关注
- 978 浏览
添加回答
举报
0/150
提交
取消