0
Sql Server의 XML 열에 위에 뷰를 제공하려는 일부 XML이 있습니다. 특히 전체 XML 청크 자체와 함께 루트 요소의 "버전"특성을 드러내고 싶습니다.SQL Server에서 XML 데이터 (특성) 쿼리
테이블에는 "트리"라는 단일 열이 있습니다. 나는 이런 식으로 쿼리 할 때
<?xml version="1.0" encoding="utf-8" ?>
<ClassificationTree xmlns="http://schemas.tempuri.org/2014/02/17" version="1.0">
<Classification name="WTG" priority="1">
<Classification name="Corrective" priority="1">
<Classification name="RDSPP-Codes" priority="1" />
</Classification>
<Classification name="Predetermined" priority="2">
<Classification name="Non Service related (tests, visits etc)" priority="1" />
<Classification name="Scheduled Service" priority="2" />
</Classification>
</Classification>
</ClassificationTree>
:
XML은 다음과 같습니다
WITH XMLNAMESPACES ('http://schemas.tempuri.org/2014/02/17' AS ns1)
select
Tree.value('(/ns1:ClassificationTree/@version)[0]','varchar(20)') as Version
, Tree
from
ClassificationTree
내가 XML을 청크 모든 권리를 얻을 수 있지만, "버전"A 행은 NULL입니다.
무엇이 여기에 있습니까?
+1 설명이 있지만 SQL Server 구현은 실제로 첫 번째 실행을 더 빠르게 만듭니다. –
SQL Server는 테이블 값 함수를 사용하여 첫 번째 항목을 찾습니다 (맨 위 사용). 첫 번째 버전에서는 함수가 한 번 실행되어 값을 찾았고 두 번째 항목에서는 노드를 찾기 위해 한 번 실행되고 두 번째 시간은 두 번째로 실행됩니다. 속성 값을 찾습니다. –