아래와 같은 순서로 특정 이름을 선택할 수 있습니다
:
1) 실제 질문 : XPath에있는 점은 무엇인가
점은 current
요소를 가리 킵니다. XPath
/XQuery
을 사용하여 XML을 읽는 것은 나무를 탐색하는 것과 같습니다. 당신은 더 깊이 움직일 수 있고 당신은 뒤로 이동할 수 있습니다.
아무런 조치없이 현재 요소가 첫 번째 요소 (대부분의 경우 루트 요소)입니다.
그러나 일부 방법, 특히 .query()
및 .nodes()
은 현재 요소를 다른 요소로 설정합니다.
확인이
DECLARE @xml XML=
(N'<root>
<Level1 nodeLevel="level1">
<Level2 nodeLevel="level2">test</Level2>
</Level1>
</root>');
SELECT @xml.query('.') AS ThisIsTheCurrentNode
SELECT @xml.query('/root/Level1').query('.') AS NowLevel1IsTheCurrentNode
SELECT @xml.query('/root/Level1').query('.').value('(Level1/@nodeLevel)[1]','nvarchar(100)') AS AndThisLevel1Attribute
,@xml.query('/root/Level1/Level2').query('.').value('.','nvarchar(100)') AS AndThisLevel2Value
2) 왜 이런 오류가?
당신은
declare @cols nvarchar(max)
set @cols = (select distinct quotename(name)
from students
for xml path(''),type).value('.','nvarchar(max)')
exec @cols
을 시도 그리고 당신은 얻을
메시지 203, 수준 16, 상태 2, 3 호선 이름 '[파반] [프라 모드] [sachin] [shital] shubham] [sonika] '은 (는) 유효한 식별자가 아닙니다.
무엇을 기대합니까? 귀하의 진술은 (인용 된) students.name
값을 연결하는 것 이상을 수행하지 않습니다. 따라서 @cols
의 내용은 오류로 처리되는 문자열 일뿐입니다. 구분 문자가 없습니다 ...
을 시도하면 이름 목록을 실행합니다 ...나는 이것이 단지 당신이 무엇이 아니라는 희망 일뿐입니다. 정말 :-)
무엇을하려고합니까? –