PATH 모드는 SELECT 쿼리에서 XML을 생성하는 데 사용됩니다
1. SELECT
ID,
Name
FROM temp1
FOR XML PATH;
Ouput:
<row>
<ID>1</ID>
<Name>aaa</Name>
</row>
<row>
<ID>1</ID>
<Name>bbb</Name>
</row>
<row>
<ID>1</ID>
<Name>ccc</Name>
</row>
<row>
<ID>1</ID>
<Name>ddd</Name>
</row>
<row>
<ID>1</ID>
<Name>eee</Name>
</row>
출력은 결과 행 집합의 각 열 값이 행 요소로 래핑되는 요소 중심 XML입니다. SELECT 절은 컬럼 이름에 대한 별명을 지정하지 않으므로 생성 된 하위 요소 이름은 SELECT 절의 해당 컬럼 이름과 동일합니다.
행 집합의 각 행에 대해 태그가 추가됩니다.
2.
SELECT
ID,
Name
FROM temp1
FOR XML PATH('');
Ouput:
<ID>1</ID>
<Name>aaa</Name>
<ID>1</ID>
<Name>bbb</Name>
<ID>1</ID>
<Name>ccc</Name>
<ID>1</ID>
<Name>ddd</Name>
<ID>1</ID>
<Name>eee</Name>
2 단계 : 길이가 0 인 문자열을 지정하면 줄 바꿈 요소가 생성되지 않습니다.
3.
SELECT
Name
FROM temp1
FOR XML PATH('');
Ouput:
<Name>aaa</Name>
<Name>bbb</Name>
<Name>ccc</Name>
<Name>ddd</Name>
<Name>eee</Name>
4. SELECT
',' +Name
FROM temp1
FOR XML PATH('')
Ouput:
,aaa,bbb,ccc,ddd,eee
4 단계에서 값을 연결합니다.
5. SELECT ID,
abc = (SELECT
',' +Name
FROM temp1
FOR XML PATH('') )
FROM temp1
Ouput:
1 ,aaa,bbb,ccc,ddd,eee
1 ,aaa,bbb,ccc,ddd,eee
1 ,aaa,bbb,ccc,ddd,eee
1 ,aaa,bbb,ccc,ddd,eee
1 ,aaa,bbb,ccc,ddd,eee
6. SELECT ID,
abc = (SELECT
',' +Name
FROM temp1
FOR XML PATH('') )
FROM temp1 GROUP by iD
Ouput:
ID abc
1 ,aaa,bbb,ccc,ddd,eee
6 단계에서 날짜별로 ID를 그룹화합니다.
STUFF (source_string, start, length, add_string) 매개 변수 또는 인수 source_string 수정할 소스 문자열. start 길이 문자를 삭제하고 add_string을 삽입 할 source_string의 위치입니다. length source_string에서 삭제할 문자 수입니다. add_string 시작 위치에서 source_string에 삽입 할 문자 순서.
SELECT ID,
abc =
STUFF (
(SELECT
',' +Name
FROM temp1
FOR XML PATH('')), 1, 1, ''
)
FROM temp1 GROUP by iD
Output:
-----------------------------------
| Id | Name |
|---------------------------------|
| 1 | aaa,bbb,ccc,ddd,eee |
-----------------------------------