SQL Server XQuery

declare @xml xml,
        @count int,
        @exist int,
        @i int
set @xml = '<a><b></b><c name="sss"></c><d><id>123</id></d></a>'
--获取根节点下的节点个数
set @count = cast(@xml.query('count(*[1]/*)') as varchar(max))
print @count
--判断根节点下是否存在某个节点
set @exist = cast(@xml.query('*[1]/*').exist('b') as varchar(max))
if @exist = 1
   print '根节点下存在节点b'
else
   print '根节点下不存在节点b'
set @exist = cast(@xml.query('*[1]/*').exist('d/id') as varchar(max))
if @exist = 1
   print '根节点下存在节点b下的子节点id'
else
   print '根节点下不存在节点b下的子节点id'

--给xquery语句传外部变量值
set @i = 1
while (@i <= @count)
begin
   select @xml.query('*[1]/*[sql:variable("@i")]')
   set @i = @i + 1
end

 

你可能感兴趣的:(sql,C++,c,xml,SQL Server)