2011-05-09 5 views
2

현재 테이블에 args에 대해 약 100 개의 행이 있습니다.이 테이블에는 다음과 같은 데이터가 포함 된 XML 필드가 있습니다 (예 :SQL 2008 R2의 XML 필드에서 고유 한 데이터 집합 검색

).

<cf1>winter</cf1> 

..과 완전성을 위해, 또 다른 몇 행이 아마의 배수 포함 :

<cf1>spring</cf1> 
<cf1>summer</cf1> 

.. 난 다음 다른 행 또는 포함 된 행이있을 수 있습니다

그래서 내 질문은 :

어떻게 쿼리/proc 디렉토리를 작성하는 내 XML 필드에 나에게 모든 가능한 XML 노드의 고유 결과 집합을 반환?

나는 100 개의 행을 반환 할 수 있다고 생각하고, C#을 사용하여이를 필터링합니다.하지만 SQL 2008에서는 훨씬 더 좋은 방법이 있다고 추측합니다!

+1

당신은 ('') 또는 고유 내부 텍스트 고유의 태그를 찾고 ('summer','spring','겨울') ? –

+0

죄송합니다. 실제 내용이 아니므로 내부 텍스트가 명확합니다. –

답변

1

XQuery를 사용하여 하위 쿼리의 데이터를 가져 와서 테이블의 다른 행으로 처리한다는 아이디어가 있습니다. 그러한처럼 :

SELECT DISTINCT Season 
FROM 
    (SELECT CAST(Xml_Field.query('data(/cf1)') AS VARCHAR) AS Season 
    FROM My_Xml_Table) 

이 쿼리는 반환합니다

Season 
------ 
summer 
winter 
spring 
관련 문제