1
왜 작동합니까? SQL Server XML 필드 - TSQL 변수를 XML 노드 순서 표시기로 사용
SELECT
XDocument
.value('(/Book/Chapter[@verse="allo"])[2]',
nvarchar(max)')
FROM XBiblos
WHERE Version = 666
그러나 왜이 작동하지 않는 이유는 무엇입니까? 유일한 DIFF가
[2]
오류 MSG
'value()' requires a singleton (or empty sequence), found operand of type 'xdt:untypedAtomic *'
DECLARE @i int;
SET @i = 2;
SELECT
XDocument
.value('(/Book/Chapter[@verse="allo"])[sql:variable("@i")]',
nvarchar(max)')
FROM XBiblos
WHERE Version = 666
문서 구조 예제에 [sql:variable("@i")]
...
<XDocument name="DraXQueLah">
<Book name="Worldymort">
<Chapter verse="Forgot">Forgot so loved the world</Chapter >
<Chapter verse="Icecream">That we were eternally creamed</Chapter >
<Chapter verse="blah">blah blah</Chapter >
<Chapter verse="blah">blah blah</Chapter >
<Chapter verse="blah">blah blah</Chapter >
<Chapter verse="blah blah">blah blah blah</Chapter >
</Book>
</XDocument>
jd가 sql : variable() 함수의 사용 방법입니다. https://msdn.microsoft.com/en-us/library/ms188254.aspx를 읽으십시오. –