본문 바로가기
ORACLE/SQL

[Oracle] NON-EQUI JOIN 비등가 조인 정리 :: 마이자몽

by 🌻♚ 2020. 3. 19.

NON-EQUI JOIN

두개의 테이블을 특정한 키를 기준으로 합쳐서 데이터를 표현하는 것을 JOIN이라고 합니다. 사원 테이블에 부서 번호가 있고 부서 테이블에 부서명이 있어서 사원의 이름과 부서명을 확인하기 위해서 사원테이블의 부서번호와 부서 테이블의 부서번호로 JOIN 시켜 데이터를 표현할 수 있습니다. 이렇게 특정 칼럼은 같다는 형식으로 조인을 시키는 것은 EQUI JOIN이라고 합니다. 그럼 NON-EQUI JOIN은 뭘까요?

 

상호평가 등급, 성적 등급과 같이 특정 범위와 등급을 지정하고 해당 범위에 들었을 때 등급으로 데이터를 표현하기 위해 사용되는 것이 NON-EQUI JOIN입니다. NON-EQUI JOIN은 EQUI JOIN과 다르게 특정 칼럼을 범위로 JOIN 시킵니다.

 

Oracle Scott 계정으로 NON-EQUI JOIN을 알아보겠습니다.

 

EMP TABLE

1
2
3
4
5
SELECT
    ENAME
    ,JOB
    ,SAL
FROM EMP;

EMP 테이블의 SAL 칼럼의 값을 기준으로 등급을 매겨줄겁니다.

 

SALGRADE TABLE

1
SELECT * FROM SALGRADE;

SALGRADE 테이블의 LOSAL과 HISAL을 기준으로 GRADE 칼럼을 이용해서 등급을 매기겠습니다.

 

 

사원 월급별 등급

Oracle Syntax

1
2
3
4
5
6
7
8
SELECT
    ENAME
    ,JOB
    ,SAL
    ,GRADE
FROM EMP, SALGRADE
WHERE SAL >= LOSAL
AND SAL <= HISAL;

 

ANSI Syntax

1
2
3
4
5
6
7
SELECT
    ENAME
    ,JOB
    ,SAL
    ,GRADE
FROM EMP JOIN SALGRADE
ON SAL BETWEEN  LOSAL AND HISAL;

 

태그

댓글0