본문 바로가기

프로그래밍/MS SQL

[MSSQL] Query To XML

[MSSQL] Query To XML

 

- 데이터 쿼리의 결과를 XML 로 표현

 

1. For XML RAW

 

- 쿼리 Row 단위로 표출

 

<실행문>

 

<결과>

 

 

2. For XML RAW('element명')

 

- element명으로 row element 명이 바뀜

 

<실행문>

 

<결과>

 

 

3. For XML Path

 

- SQL2005에서 추가된 기능

- FOR XML EXPLICIT 보다 훨 쉽게 XML 문서로 변환 가능

 

<실행문1>

 

<결과1>

 

 

<실행문2>

 

<결과2>

 

 

For XML Path 열이름 규칙  

이름

결과

@이름

해당 열의 문자 데이터가 결과 XML의 현재 요소에 대한 속성으로 생성됩니다.

이름

해당 열의 문자 데이터가 결과 XML의 현재 요소에 대한 하위 요소로 생성됩니다.

요소이름/이름

해당 열의 문자 데이터가 결과 XML의 요소이름 요소 아래의 하위 요소로 생성됩니다.

요소이름/@이름

해당 열의 문자 데이터가 결과 XML의 요소이름 요소에 대한 속성으로 생성됩니다.

Text()

해당 열의 문자 데이터가 결과 XML에서 텍스트 노드로 생성됩니다.

Comment()

해당 열의 문자 데이터가 결과 XML에서 XML 주석으로 생성됩니다.

Node()

해당 열의 문자 데이터가 결과 XML의 현재 요소 아래에 inline으로 삽입됩니다.

*

Node()와 동일합니다.

Data()

해당 열의 문자 데이터가 atomic value로 삽입됩니다. 결과 XML atomic value 사이에 스페이스가 삽입됩니다.

Processing-instruction(name)

해당 열의 문자 데이터가 name이라는 XML processing instruction으로 생성됩니다.

 

 

4. 응용

 

- Raw 또는 Path 등으로 바꿔 사용할 수 있음, 프로퍼티와 엘러먼트 차이

- Type : 하위 쿼리가 Xml 유형으로 결과 반환, 수정되지 않음

 

1) 계층형 ( 공통 내용을 상위 element 로 만듬 )

 

<실행문>

 

<결과>

 

 

2) XML 결과값 UNION ( 각기 다른 테이블들에 대한 결과 XML 을 나열 )

 

<실행문>

 

<결과>