需要帮助Local.name(.)xquery函数

Tho*_*mas 3 t-sql sql-server xquery-sql

任何人都可以告诉我Local.name(.)xquery函数是如何工作的.关于sql构建问题我在论坛上发帖提问,他们给我答案.其中使用了Local.name(.)xquery函数,但语法不是很清楚.

;with cte as
(
select x.i.value('local-name(.)','nvarchar(MAX)') as colname
,x.i.value('.','nvarchar(max)') as data
from @x.nodes('/Record/DELETED/*') as x(i))
Run Code Online (Sandbox Code Playgroud)

这行xivalue('local-name(.)','nvarchar(MAX)')的含义是colname为什么'local-name(.)'什么是local-name(.)是什么意思.再次xivalue('.','nvarchar(max)')作为数据请详细解释两行.我不是提前用户.非常感谢.

请指导我.谢谢

Mik*_*son 7

local-name(.)将为您提供当前节点的节点名称.如果使用local-name(..),则会获得父节点的节点名称.

x.i.value('.','nvarchar(max)') 将为您提供当前节点的内容.

@x.nodes('/Record/DELETED/*')为您提供所有节点/Record/Deleted.

因此,您的查询将为您提供所有节点的名称/值列表/Record/Deleted.