[SQL / 기본문법] NVL / IS NULL / DISTINCT / AS / || / !=, ^=, <>

리트리버J

·

2020. 12. 28. 01:19

728x90

1. NVL 

- null 값을 원하는 값으로 만들어 주기

1
2
3
4
5
6
SELECT 
    EMP_NAME AS 이름
    ,SALARY * 12 "1년 급여(원)"
    ,(SALARY + (SALARY * BONUS)) * 12 AS "총소득(원)"
FROM 
    EMPLOYEE; -- NULL이 있기 때문에 계산이 불가능한 경우가 있다.
cs

보너스가 없는 직원들은 null이므로 계산 불가능

→ 해결 방법

NVL(컬럼명, 처리할 숫자)
1
2
3
4
5
6
SELECT 
    EMP_NAME AS 이름
    ,SALARY * 12 "1년 급여(원)"
    ,(SALARY + (SALARY * NVL(BONUS,0))) * 12 AS "총소득(원)"
FROM 
    EMPLOYEE;
cs

 

보너스가 null인 직원도 계산이 가능하다.

2. IS NULL / IS NOT NULL

- null 혹은 null이 아닌 값 찾기

※ 주의사항 : BONUS = NULL 이 아니다!!

 

1
2
3
4
5
6
7
8
9
SELECT
    EMP_ID,
    EMP_NAME,
    SALARY,
    BONUS
FROM
    EMPLOYEE
WHERE
    BONUS IS NULL;
cs

 

보너스가 null인 직원들만 나온다.

3. DISTINCT

- 컬럼의 중복 제외

1
2
3
4
SELECT
    JOB_CODE
FROM
    EMPLOYEE;
cs

중복된 JOB_CODE가 많이 있다.

1
2
3
4
SELECT
    DISTINCT JOB_CODE
FROM
    EMPLOYEE;
cs

중복이 사라졌다.

4. AS

- 컬럼 별칭 짓기

3가지 방법으로 가능하다.

※ 주의사항

1. 더블 쿼테이션("")으로 할 것.

2. 띄어쓰기가 있다면 ""을 꼭 붙일 것.

컬럼 + AS + 별칭

컬럼 + AS + "별칭"

컬럼 + "별칭"

1
2
3
4
5
6
SELECT 
    EMP_NAME AS 이름
    ,SALARY * 12 "1년 급여(원)"
    ,(SALARY + (SALARY * BONUS)) * 12 AS "총소득(원)"
FROM 
    EMPLOYEE;
cs

5. ||

- 컬럼과 컬럼을 이어 붙이기

컬럼 || 컬럼 으로 하나의 컬럼으로 연결 할 수 있다.

추가로, 싱글 쿼테이션('')을 사용하여 원하는 문자열 추가도 가능하다.

1
2
3
4
SELECT 
    EMP_NAME || '의 월급은 ' || SALARY || '원 입니다.' AS "사원별 월급"
FROM
    EMPLOYEE;
cs

6. !=, ^=, <>

- 같지 않다의 비교 연산자이다.

 

1
2
3
4
5
6
7
8
9
SELECT
    EMP_NAME,
    DEPT_CODE
FROM
    EMPLOYEE
WHERE
--    DEPT_CODE != 'D9';
--    DEPT_CODE ^= 'D9';
    DEPT_CODE <> 'D9';
cs

 

 

728x90