IF 함수


IF함수는 조건식이 참일 때와 거짓일 때 다른 값을 반환

IF(조건식, 참일  , 거짓일  )


예시: 성적에 따라 합격 여부 표시하기

SELECT name,
       grade,
       IF(grade >= 3.0, '합격', '불합격') AS result
FROM students;

if-grade

IF함수를 사용해 성적이 3.0이상인 경우엔 ‘합격’, 아니면 ‘불합격’을 result에 출력하도록 작성



CASE문


CASE문은 SQL에서 더 복잡한 조건일 때 사용

CASE
    WHEN 조건식1 THEN 반환값1
    WHEN 조건식2 THEN 반환값2
    ...
    ELSE 기본값
END


예시: 성적에 따른 등급 표시

SELECT name,
       grade,
       CASE
           WHEN grade >= 3.7 THEN 'A'
           WHEN grade >= 3.3 THEN 'B'
           WHEN grade >= 3.0 THEN 'C'
           ELSE 'D'
       END AS grade_level
FROM students;

case-when-then-grade

CASE문의 ELSE로 모든 조건에 해당하지 않는 경우 반환할 값을 설정할 수 있다.



NULL값 처리: NULLCOALESCE


데이터베이스의 NULL은 값이 없음을 의미합니다.



NULL의 특성


NULL은 값이 존재하지 않음을 의미합니다.
그래서 NULL은 숫자나 문자열과 비교할 수 없습니다.


잘못된 예

SELECT *
FROM students
WHERE grade = NULL;

NULL은 어떤 값과도 같지 않기 때문에, 어떤 결과도 반환하지 않습니다.
NULL값과 비교를 하려면 IS NULL 또는 IS NOT NULL을 사용해야 합니다.


예시: IS NULL을 이용한 쿼리

SELECT name
FROM students
WHERE grade IS NULL;

이 쿼리는 grade 값이 NULL인 학생을 조회하는 방법



COALESCE 함수


COALESCE 함수는 여러인자 중 NULL이 아닌 첫 번째 값 반환

COALESCE(1, 2, 3, ...)

coalesce-example


예시: NULL인 성적을 0으로 대체

SELECT name,
       COALESCE(grade, 0) AS grade
FROM students;

grade값이 NULL인 경우 0을 반환하도록 작성.
COALESCE는 여러 값 중 NULL이 아닌 첫 번째 값을 반환하므로,
여기서는 grade 값이 존재하면 grade값 반환, 존재하지 않으면 0을 반환.

태그:

카테고리:

업데이트: