본문 바로가기

Server/DB

코테 준비를 위한 SQL 첫걸음 정리 - ORDER, AS, CASE, COALESCE

1. WHERE 조건식 + ORDER BY 정렬

데이터 필터링에는 WHERE, 정렬에는 ORDER BY 사용.

SELECT * FROM 테이블명 WHERE 조건식 ORDER BY 칼럼명;

ORDER BY 정렬 방식

  • ASC (오름차순)
    • 문자열: 사전순 정렬 (예: 1 → 11 → 2)
    • 숫자: 작은 값에서 큰 값으로 정렬 (예: 1 → 2 → 11)
  • DESC (내림차순)
    • 반대 순서로 정렬됨

NULL 값 정렬 방식

  • MySQL: NULL을 가장 작은 값으로 간주 (오름차순 정렬 시 NULL이 먼저)
  • Oracle: NULL을 가장 큰 값으로 간주 (오름차순 정렬 시 NULL이 마지막)

 

2. LIMIT: 결과 개수 제한

특정 개수의 데이터만 가져오기 위해 LIMIT 사용.

SELECT 칼럼 FROM 테이블명 WHERE 조건식 ORDER BY 칼럼 LIMIT 행 수;
  • SQL Server: TOP 사용
  • Oracle: ROWNUM 사용

 

3. ALIAS (별칭 지정)

SELECT문에서 컬럼명 또는 연산된 값에 별칭 지정 가능.

SELECT 연산된 값 AS 별칭 FROM 테이블명;

SQL 실행 순서

  1. WHERE
  2. GROUP BY
  3. HAVING
  4. SELECT (별칭 지정) → 별칭은 이전 단계에서 사용 불가
  5. ORDER BY

 

4. CASE: 조건문 처리

CASE를 사용하여 조건에 따라 다른 값 반환.

단순 CASE

SELECT CASE 칼럼
         WHEN 1 THEN '남자'
         WHEN 2 THEN '여자'
         ELSE '기타'
       END AS 성별
FROM 테이블명;

검색 CASE

SELECT CASE
         WHEN 칼럼 = 1 THEN '남자'
         WHEN 칼럼 = 2 THEN '여자'
         ELSE '기타'
       END AS 성별
FROM 테이블명;

 

5. COALESCE: NULL 처리

COALESCE는 NULL이 아닌 첫 번째 값을 반환.

SELECT COALESCE(표현식1, 표현식2, 표현식3, ...) FROM 테이블명;

예제

SELECT COALESCE(a, 0) FROM 테이블명;
  • a가 NULL이면 0 반환
  • a가 NULL이 아니면 그대로 반환