결과값은 겹쳐서 보이고 싶습니다. 0 4 719

by 정우성 [2018.04.18 22:53:17]


테이블1    
1 김가나 승인
2 박승대 승인
3 오천식 승인
     
     
테이블2    
1 박충식 불승인
2 김가나 불승인
3 오천식 불승인
     
결과화면    
김가나  승인,불승인
박승대  승인  
오천식 승인,불승인
박충식 불승인  

 

위와 같이 하고 싶거든요  order by 는 신경 안쓰고요..

기본 함수로만 작성할 수 있을까요?    row_number 이런거 사용안하고..

방법 주시면 감사하겠씁니다.

by 케를로스 [2018.04.18 23:02:48]
SELECT 이름,SUBSTR(XMLAGG(XMLELEMENT(결과, ',' || 결과) ORDER BY 결과).EXTRACT('//text()'),2)
  FROM (SELECT 번호, 이름, 결과 FROM 테이블1
        UNION ALL
        SELECT 번호, 이름, 결과 FROM 테이블2)A
GROUP BY 이름

이런방법으로 하면되지않을까요??


by 정우성 [2018.04.18 23:21:57]

XMLAGGG extract  함수 말고 다른 방법 없을까요?


by 우리집아찌 [2018.04.19 09:05:25]

http://www.gurubee.net/article/55512

버젼별로 정리되어있씁니다.


by 우리집아찌 [2018.04.19 09:11:49]
WITH T1 ( RN , NM , GB ) AS (
SELECT 1 , '김가나',	'승인' FROM DUAL UNION ALL
SELECT 2 , '박승대',	'승인' FROM DUAL UNION ALL
SELECT 3 , '오천식',	'승인' FROM DUAL
) , T2 ( RN , NM , GB ) AS ( 	 	 
SELECT 1 , '박충식',	'불승인' FROM DUAL UNION ALL
SELECT 2 , '김가나',	'불승인' FROM DUAL UNION ALL
SELECT 3 , '오천식',	'불승인' FROM DUAL
)

SELECT NVL(A.NM,B.NM) NM , A.GB || CASE WHEN A.GB IS NOT NULL AND B.GB IS NOT NULL THEN ',' END || B.GB  AS GB 
  FROM T1 A
       FULL OUTER JOIN
       T2 B
    ON A.NM = B.NM

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입