728x90
반응형

1. DECODE

CREATE TABLE 조직 (조직ID VARCHAR2(12) , 조직명 VARCHAR2(16));
CREATE TABLE 영업고객 (고객번호 NUMBER , 고객구분코드 VARCHAR2(3) , 담당조직ID VARCHAR2(4));



INSERT INTO 조직 (조직ID, 조직명) VALUES ('0tjq' ,'강남 본점');
INSERT INTO 조직 (조직ID, 조직명) VALUES ('wzqf' ,'영등포 지점');
INSERT INTO 조직 (조직ID, 조직명) VALUES ('m1gk' ,'신촌 지점');
INSERT INTO 조직 (조직ID, 조직명) VALUES ('hyao' ,'을지로 지점');


INSERT INTO 영업고객 (고객번호, 고객구분코드 , 담당조직ID) VALUES (1 ,'A1' , '0tjq');
INSERT INTO 영업고객 (고객번호, 고객구분코드 , 담당조직ID) VALUES (2 ,'A1' , 'wzqf');
INSERT INTO 영업고객 (고객번호, 고객구분코드 , 담당조직ID) VALUES (3 ,'A1' , 'wzqf');
INSERT INTO 영업고객 (고객번호, 고객구분코드 , 담당조직ID) VALUES (4 ,'B1' , 'm1gk');
INSERT INTO 영업고객 (고객번호, 고객구분코드 , 담당조직ID) VALUES (5 ,'B1' , NULL);
INSERT INTO 영업고객 (고객번호, 고객구분코드 , 담당조직ID) VALUES (6 ,'A1' , NULL);

조직
영업고객

SELECT A.고객번호, A.고객구분코드 , B.조직명
FROM 영업고객 A, 조직 B
WHERE B.조직ID = DECODE(A.고객구분코드 , 'B1' , '0tjq' , A.담당조직ID)
ORDER BY A.고객번호;

==> A.고객구분코드가 'B1' 이면 '0tjq' return , 아니면 A.담당조직 ID 출력

 

 

==> B.조직 ID ==>  고객구분코드가 B1 이면 담당조직 ID 0tjq , A1이면 wzqf, m1gk 출력

 

 

1 A 1 강남본점

2 A1 영등포지점

3 A1 영등포지점

4 B1 강남본점

5 B1 강남본점

 

 

2. CROSS JOIN

SELECT * FROM 조직 A CROSS JOIN 영업고객 B
WHERE B.담당조직ID = A.조직ID

CROSS JOIN

3. LEFT OUTER JOIN

SELECT * FROM 조직 A LEFT OUTER JOIN 영업고객 B
ON B.담당조직ID = A.조직ID

LEFT OUTER JOIN

4. RIGHT OUTER JOIN

RIGHT OUTER JOIN

5. INNER JOIN

INNER JOIN

728x90
반응형

+ Recent posts