outer join시 row별로 결과 생성?? 0 4 728

by 낭만오리 [SQL Query] [2016.05.26 11:56:10]


A 테이블

CODE NAME
100 일반
200 특별

 

B테이블

CODE TYPE
100 A
200 B
100 C
100 D

원하는 결과

TYPE CODE
A 100
  200
  100
B 200
C 100
  200
D 100
  200

일반적인 OUTER JOIN으로는 B테이블 4개 ROW만 나오는데..

예전에 게시판에서 OUTER JOIN으로 쉽게 해결하는걸 본거 같은데...

정작 필요해서 찾으니 나오지 않네요..

 

 

by 랑에1 [2016.05.26 12:51:09]
WITH T1 AS (
SELECT 100 code, '일반' NAME FROM dual UNION ALL
SELECT 200 code, '특별' NAME FROM dual 
),
T2 AS (
SELECT 100 code, 'A' TYPE FROM dual UNION ALL
SELECT 200 code, 'B' TYPE FROM dual UNION ALL
SELECT 100 code, 'C' TYPE FROM dual UNION ALL
SELECT 100 code, 'D' TYPE FROM dual 
)

SELECT T2.type, T1.code FROM T1, T2
ORDER BY T2.type, T1.code

그냥 이렇게 하면 결과는 나오는데 조인의 의미는 없겠네요..


by 낭만오리 [2016.05.26 15:21:32]

답변 감사합니다. ^^

간단하게 질문하려다 보니 질문이 많이 부족했습니다.

컬럼을 하나 더 추가해서 금액이 있을때 아래와 같이 결과를 만들고 싶습니다.

 

ROW | TYPE| CODE  | AMT
1      | A    | 100     | 1000
2      |       | 200     |
3      | B    | 200     | 2000
4      |       | 100     |
5      | C    | 100     | 1500
6      |       | 200     |
7      | D    | 100     | 500
8      |       | 200     |

예전에 OUTER JOIN 다음에 뭔가 간단한걸 추가하니 되는걸 본거 같은데 안되네요.. ^^;


by 마농 [2016.05.26 17:27:29]
Partition outer join

by 낭만오리 [2016.05.26 18:45:19]

넵!! 감사합니다.

잊어버리지 않고 잘 기억하겠습니다 ^^

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