Нужна помощь Local.name (.) Xquery функция - PullRequest
3 голосов
/ 01 июня 2011

Может кто-нибудь сказать мне, как работает функция xquery Local.name (.).относительно проблемы строительства sql я отправляю вопрос на форуме, и они дают мне ответ.где используется функция xquery Local.name (.), но синтаксис мне не очень понятен.

;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))

что означает эта строка(MAX) ') как colname почему' local-name (.) 'Что такое local-name (.) Что это значит.снова xivalue ('.', 'nvarchar (max)') в качестве данных, пожалуйста, объясните две строки в деталях.я не продвинутый пользовательБольшое спасибо.

Пожалуйста, направьте меня.спасибо

1 Ответ

7 голосов
/ 01 июня 2011

local-name(.) даст вам имя узла текущего узла.Если бы вы использовали local-name (..), вы бы получили имя узла родительского узла.

x.i.value('.','nvarchar(max)') даст вам содержимое текущего узла.

@x.nodes('/Record/DELETED/*')дает вам все узлы в /Record/Deleted.

Таким образом, ваш запрос выдаст вам список имен / значений всех узлов в /Record/Deleted.

...