728x90
반응형
좀 더 심화된 SQL 문법들을 배우기 전에 알아두면 좋을 것들을 먼저 학습해 보도록 하겠습니다. 이번 글에서는 지난 예제에서 확인할 수 있었던 조건문과 관련된 함수들을 학습해 보겠습니다.
1️⃣ IF 조건문
- IF 조건문의 문법은 다음과 같이 매우 쉽습니다.
- 엑셀에서 쓰는 것과 거의 동일하기 때문에 익숙한 함수입니다.
SELECT IF(조건문, 참일 때 반환, 거짓일 때 반환)
FROM dual
- 또한 IF문 안에 IF문을 중첩으로 사용할 수 있기 때문에 다중조건문이 필요한 경우 중첩해서 사용할 수 있습니다.
SELECT IF(조건문, IF(조건문, 참일 때 반환, 거짓일 때 반환), 거짓일 때 반환)
FROM dual
- 자매품으로 MYSQL에서 사용가능한 IFNULL이라는 함수가 있습니다.
- 반환값이 NULL경우 대체 값으로 출력해주는 함수입니다.
- 보통, 집계 값이 없는 경우 0으로 출력할 때 많이 활용합니다.
SELECT IFNULL(order_price,0)
FROM dual
- 위의 IFNULL의 경우 MYSQL에서만 사용 가능하기 때문에 범용적으로 사용가능한 COALESCE 함수도 존재합니다.
- IFNULL은 하나의 대체값만 설정할 수 있지만 COALESCE 함수는 여러 개의 대체값을 지정할 수 있습니다.
SELECT COALESCE(order_price,order_amount, 0)
FROM dual
2️⃣ CASE
- CASE 조건문은 IF보다 좀 더 직관적이고 여러개의 조건을 나열하기 좋아 활용도가 높습니다.
- CASE 조건문의 문법은 다음과 같습니다.
SELECT
CASE
WHEN 조건문 THEN 리턴값
WHEN 조건문 THEN 리턴값
ELSE 리턴값
END
FROM dual
- CASE문으로 WHEN, THEN, ELSE, END 키워드와 함께 작성하여야 문법이 완성되므로 문법에 맞게 잘 작성되었는지 확인해야 합니다.
- 단, ELSE 키워드는 생략가능하며 조건에 모두 충족되지 않는 경우 리턴값을 지정받지 못해 NULL이 반환됩니다.
SELECT
CASE
WHEN 조건문 THEN 리턴값
WHEN 조건문 THEN 리턴값
END
FROM dual
728x90
반응형
'데이터분석' 카테고리의 다른 글
[SQL] 날짜 다루기_EXTRACT, DATE_ADD (0) | 2024.02.22 |
---|---|
[SQL] DATE_FORMAT_일,월,년별 집계하기 (0) | 2024.02.21 |
[SQL 기본] 예제_프로모션 페이백 대상자 선정 (0) | 2024.02.16 |
[SQL 기본] 예제_마케팅 채널 최적화(2) (0) | 2024.02.08 |
[SQL 기본] 예제_마케팅 채널 최적화 (1) | 2024.02.07 |