2012-08-23 4 views
1

SQL 쿼리에서이 명령을 실행하면 무엇을 시도해도 NULL이 계속 표시됩니다.TSQL에서이 XML의 데이터를 가져 오는 방법

DECLARE @x AS XML 

SET @x = ' <Data> <Preference>Mail</Preference> <Comment>Changed Contact Communication Preference due to customer unsubscribed</Comment> </Data> ' 


SELECT @x.value('(//Data/@Preference)[0]','varchar(20)') AS Preference 

무엇이 잘못 되었나요? 이 XPath를 대신

답변

1

사용 :

SELECT @x.value('(//Data/Preference)[1]','varchar(20)') AS Preference 

모든 XPath에 배열이 1 기반 있습니다 - 0 기반이 아닌 - 그러므로 당신의 [0] 아무것도 반환하지 않습니다.

두 번째로 <Preference>은 XML 요소이므로 속성이 아닙니다. @Preference은 XML 속성을 선택하려고합니다.

관련 문제