2-depth 해결 방안 문의드립니다.
SELECT (SELECT (SELECT RTRIM(XMLAGG(XMLELEMENT(e, DISTINCT T3.type || '|')).EXTRACT ('//text()'), '|') FROM package T1, package_detail T2 WHERE T1.product_id = T2.product_id AND T2.contents_id = TT.contents_id) conts_type FROM history TT
XMLAGG(XMLELEMENT에 DISTINCT 가 되면 싶게 해결 될듯한데 안되네요
그래서 생각한게 2-depth를 생각했습니다.
SELECT (SELECT RTRIM(XMLAGG(XMLELEMENT(e, T3.type || '|')).EXTRACT ('//text()'), '|') FROM (SELECT DISTINCT T1.type, T2.contents_id FROM package T1, package_detail T2 WHERE T1.product_id = T2.product_id) T3 WHERE T3.contents_id = TT.contents_id) conts_type FROM history TT
이렇게 할려다 보니 DISTINCT 가 type만의 DISTINCT가 아니라서 결과값이 좀 다르게 나오네요.
type만의 DISTINCT 를 XMLAGG(XMLELEMENT 할 수 있는 방법이 있을까요?
*
10g 사용중이구요 multi row를 single row로 만들때 구분자를 유동적으로 변경 가능해야해서
XMLAGG(XMLELEMENT 를 썼습니다.
*
본 글에는 history TT 이렇게 간단하게 적었지만 저 자체도 약간의 조건으로 구해지는 테이블입니다.
답변 부탁드리겠습니다.
감사합니다.