나는 다음과 같은 XML이 :크로스 SQL 서버에서 XML에서 아이의 부모 값을 얻기 위해 적용
<root>
<row value="US">
<col value="00">Jon</col>
<col value="01">David</col>
<col value="02">Mike</col>
<col value="03">Nil</col>
</row>
<row value="Canada">
<col value="C1">Pollard</col>
</row>
<row value="Japan">
<col value="J1">Yin</col>
<col value="J2">Li</col>
</row>
<row value="India">
<col value="MP">Ram</col>
<col value="UP">Paresh</col>
<col value="AP">Mohan</col>
</row>
</root>
을 나는 SQL Server 쿼리 사용하여 다음과 같은 출력을 원하는 : 내가 사용하고
US 00 Jon
US 01 David
US 02 Mike
US 03 Nil
Canada C1 Pollard
Japan J1 Yin
Japan J2 Li
India MP Ram
India UP Paresh
India AP Mohan
을 다음 SQL 쿼리 :
declare @x xml
set @x =
'<root>
<row value="US">
<col value="00">Jon</col>
<col value="01">David</col>
<col value="02">Mike</col>
<col value="03">Nil</col>
</row>
<row value="Canada">
<col value="C1">Pollard</col>
</row>
<row value="Japan">
<col value="J1">Yin</col>
<col value="J2">Li</col>
</row>
<row value="India">
<col value="MP">Ram</col>
<col value="UP">Paresh</col>
<col value="AP">Mohan</col>
</row>
</root>'
select r.value('@value','varchar(100)'),r.value('.','varchar(100)')
from @x.nodes('root') as m(c)
cross apply m.c.nodes('row/col') as x(r)
부모 행의 값이 들어있는 첫 번째 열을 가져올 수 없습니다. 첫 번째 열 값을 가져 오기 위해 어떤 변경을 제안 할 수 있습니까?
감사합니다. 그것은 효과가있다. – Paresh
@Paresh :이 답변으로 문제를 해결할 수 있다면 [**이 대답에 동의 **]해야합니다 (http://meta.stackexchange.com/q/5234/153998). 이것은 * 당신을 돕기 위해 자신의 시간을 보낸 * 사람들에게 감사를 표합니다. –
매우 유용합니다! ../@value 제안은 CROSS를 줄일 수있었습니다. :). – Willmore