以下代码尝试获取SQL Server中第一个节点a
的属性y
。
declare @x xml = '<x><y a="1" /><y a="2" /></x>'
select @x.query('/x/y[1]/@a')
select @x.query('(/x/y/@a)[1]')
然而,它出现了错误
Msg 6307,Level 16,State 1,Line 5
XML格式检查:属性不能出现在元素声明之外。重写你的XQuery,使其返回格式良好的XML。
答案 0 :(得分:2)
如果我理解
示例强>
declare @x xml = '<x><y a="1" /><y a="2" /></x>'
select @x.value('x[1]/y[1]/@a','varchar(max)')
<强>返回强>
1
答案 1 :(得分:0)
这有效
select @x.query('data(/x/y[1]/@a)')