본문 바로가기

Learning/SQL

IS NULL 연산자, ORDER BY

<IS NULL 연산자>

 

  • 데이터 값이 null인 경우를 조회하고자 할때 사용하는 연산자

  • null: 값이 없어 알 수 없는 값 (0이나 공백과는 다름)

 

 

  • employees테이블에서 comission_pct가 null인 데이터를 조회

1
2
3
SELECT *
FROM employees
WHERE commission_pct IS NULL;
cs

 

 

 

 

  • employees테이블에서 comission_pct가 null이 아닌 데이터를 조회

1
2
3
SELECT *
FROM employees
WHERE commission_pct IS NOT NULL;
cs

 

 

 

 

 

<IS NULL 연산자 예제> 

 

  • employees 테이블에서 manager_id 가 null 값인 직원 정보를 출력

1
2
3
SELECT *
FROM employees
WHERE manager_id IS NULL;
cs

 

 

 

 

 

<ORDER BY>

 

  • 행에 대해 정렬 순서를 지정

  • ORDER BY 열 이름 [ASC or DESC] (ASC: 오름차순, DESC: 내림차순]

  • ASC 오름차순은 생략 가능

 

 

  • employees 테이블의 모든 데이터를 last_name을 기준으로 내림차순으로 정렬하여 조회

1
2
3
SELECT *
FROM employees
ORDER BY last_name DESC;
cs

 

 

 

 

  • employees 테이블의 모든 데이터를 salary가 낮은 순으로 정렬하여 조회

1
2
3
SELECT *
FROM employees
ORDER BY salary;
cs

 

salary 뒤에 ASC을 생략하였음.

 

 

 

  • employees 테이블의 department_id, employe_id, first_name, last_name을 department_id로 정렬 한 후 employee_id로 정렬하여 조회

     

    1
    2
    3
    SELECT department_id, employee_id, first_name, last_name
    FROM employees
    ORDER BY department_id, employee_id;
    c

     

    department_id가 오름차순으로 정렬하고 department_id가 같을때는 employee_id가 오름차순으로 정렬된다.

     

 


 

 

 

  • employees 테이블의 department_id, last_name, salary*12를 연봉이란 별칭으로 조회하되 연봉으로 정렬

1
2
3
SELECT department_id, last_name, salary*12 AS "연봉"
FROM employees
ORDER BY "연봉" DESC;
cs

 

 

 

 

  • employees테이블에서 department_id, last_name, salary*12를 연봉이란 별칭으로 조회하되 3번째 열의 내림차순으로 정렬

     

    1
    2
    3
    SELECT department_id, last_name, salary*12 AS "연봉"
    FROM employees
    ORDER BY 3 DESC;
    cs

     

     

(ORDER BY 1 DESC이라면 department_id가 큰 순, 2 DESC이라면 last_name이 큰 순으로 정렬된다.)

 

 


 

 

 

 

 

<ORDER BY 예제> 

  • employees 테이블에서 employee_id, first_name, last_name을 출력하고 employee_id를 기준으로 내림차순 정렬

    1
    2
    3
    SELECT employee_id, first_name, last_name
    FROM employees
    ORDER BY employee_id DESC;
    c

     

 

 

  • employees 테이블에서 job_id에 CLERK란 단어가 들어가는 직원들의 salary 가 높은 순으로 정렬

1
2
3
4
SELECT *
FROM employees
WHERE job_id LIKE '%CLERK%'
ORDER BY salary DESC;
cs

 

 


 

 

 

  • employees 테이블에서 employee_id가 120에서 150번까지 직원을 department_id가 큰 순으로 정렬하고 department_id가 같을 시 salary가 큰 순으로 정렬

1
2
3
4
SELECT *
FROM employees
WHERE employee_id BETWEEN 120 AND 150
ORDER BY department_id DESC, salary DESC;
cs

 

 


 

 

 

 

 

 

'Learning > SQL' 카테고리의 다른 글

숫자형 함수  (0) 2020.06.15
문자형 함수  (0) 2020.06.15
LIKE 연산자  (0) 2020.06.15
BETWEEN  (0) 2020.06.12
IN, NOT IN  (0) 2020.06.12