SQL Server 2005에서 다음과 같은 xml 열이 있습니다.SQL Server 2005에서 xml 열의 최상위 특성을 선택하려면 어떻게합니까?
<Test foo="bar">
<Otherstuff baz="belch" />
</Test>
varchar로 Test (루트 요소)의 foo 특성 값을 가져올 수 있기를 원합니다. 내 목표는 뭔가 따라 줄 것이다 :
select cast('<Test foo="bar"><Otherstuff baz="belch" /></Test>' as xml).value('@foo','varchar(20)') as Foo
위의 쿼리를 실행할 때 다음 오류가 나타납니다.
Msg 2390, Level 16, State 1, Line 1 XQuery [value()]: Top-level attribute nodes are not supported
을 당신이 루트 요소는 무엇인가 모른다면 .. ??? 이 경우 "Test"라는 것을 알지만 다른 필드의 값에 따라 XML이 다른 XML 필드가 있습니다. 그래서 또는 일 수 있습니다 ... 우리가 사용할 수있는 기본 루트 요소 이름이 있습니까 ??? ??? –
Ads
@Ads는 와일드 카드를 사용합니다 (예 : '//Elements/Element [@foo]'구조에 대해 알고 있다면 – StuartLC
괄호 안에 질의를 감싼다. 쳇; 나는 결코 짐작하지 않았을 것이다. TSQL의 XML 쿼리는 훌륭하게 작동하지만 구문이 너무 어렵습니다. – dudeNumber4