728x90
XMLAGG
구문
XMLAGG(XMLType_instance [ order_by_clause ])
목적
XMLAgg는 집계 함수입니다. XML 단편들의 컬렉션을 가져와 집계된 XML 문서를 반환합니다. null을 반환하는 인수는 결과에서 제외됩니다.
XMLAgg는 SYS_XMLAgg와 유사하지만 XMLAgg는 노드 컬렉션을 반환하지만 XMLFormat 객체를 사용한 서식을 허용하지 않습니다. 또한 XMLAgg는 SYS_XMLAgg와 달리 출력을 요소 태그로 둘러싸지 않습니다.
order_by_clause 내에서 Oracle Database는 이 절의 다른 사용처와 달리 숫자 리터럴을 열 위치로 해석하지 않고 단순히 숫자 리터럴로 해석합니다.
참고:
XMLELEMENT 및 SYS_XMLAGG
예제
다음 예제는 직원 직군 ID와 성(last name)을 요소 내용으로 포함하는 Employee 요소를 포함하는 Department 요소를 생성합니다:
SELECT XMLELEMENT("Department",
XMLAGG(XMLELEMENT("Employee",
e.job_id||' '||e.last_name)
ORDER BY last_name))
as "Dept_list"
FROM employees e
WHERE e.department_id = 30;
Dept_list
-------------------------------------------------------------
<Department>
<Employee>PU_CLERK Baida</Employee>
<Employee>PU_CLERK Colmenares</Employee>
<Employee>PU_CLERK Himuro</Employee>
<Employee>PU_CLERK Khoo</Employee>
<Employee>PU_MAN Raphaely</Employee>
<Employee>PU_CLERK Tobias</Employee>
</Department>
결과는 한 행입니다. 이는 XMLAgg가 행들을 집계하기 때문입니다. GROUP BY 절을 사용하여 반환된 행 집합을 여러 그룹으로 그룹화할 수 있습니다:
SELECT XMLELEMENT("Department",
XMLAGG(XMLELEMENT("Employee", e.job_id||' '||e.last_name)))
AS "Dept_list"
FROM employees e
GROUP BY e.department_id;
Dept_list
---------------------------------------------------------
<Department>
<Employee>AD_ASST Whalen</Employee>
</Department>
<Department>
<Employee>MK_MAN Hartstein</Employee>
<Employee>MK_REP Fay</Employee>
</Department>
<Department>
<Employee>PU_MAN Raphaely</Employee>
<Employee>PU_CLERK Khoo</Employee>
<Employee>PU_CLERK Tobias</Employee>
<Employee>PU_CLERK Baida</Employee>
<Employee>PU_CLERK Colmenares</Employee>
<Employee>PU_CLERK Himuro</Employee>
</Department>
. . .
출처: 오라클 레퍼런스
원문 링크: Oracle XMLAGG 함수 문서
반응형
'코딩 > 오라클 함수' 카테고리의 다른 글
[오라클 레퍼런스 함수] XMLCDATA - XML에 CDATA 섹션 생성 (0) | 2023.09.05 |
---|---|
[오라클 레퍼런스 함수] XMLCAST - 지정한 스칼라 SQL 데이터 유형으로 변환 (0) | 2023.09.05 |
[오라클 레퍼런스 함수] WIDTH_BUCKET - 데이터의 등너비(equiwidth) 히스토그램 생성 (0) | 2023.09.05 |
[오라클 레퍼런스 함수] VSIZE - 바이트 수 반환 (0) | 2023.09.05 |
[오라클 레퍼런스 함수] VARIANCE - 분산 반환 (0) | 2023.09.04 |
댓글