Tags
- 완전검색
- regexp
- migrations
- ORM
- outer join
- Tree
- M:N
- 통계학
- Django
- drf
- count
- create
- 그리디
- Vue
- 스택
- DB
- 트리
- distinct
- 쟝고
- update
- 백트래킹
- 이진트리
- Queue
- stack
- 큐
- N:1
- SQL
- 뷰
- Article & User
- delete
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Notice
Recent Posts
Link
데이터 분석 기술 블로그
IF 함수 (MySQL) 본문
IF 함수란?
"IF" 함수는 조건에 따라 다른 값을 반환하는 논리 함수입니다. 특정 조건이 참인지 거짓인지 평가한 후, 참일 때와 거짓일 때 각각 다른 값을 반환합니다.
IF 함수는 주로 MySQL과 같은 일부 DBMS에서 지원되며, 다른 DBMS에서는 CASE 문으로 대체 가능합니다.
IF 함수의 기본 구문
IF(condition, true_value, false_value)
- condition: 평가할 조건식 (참 또는 거짓으로 평가됨).
- true_value: 조건이 참일 때 반환할 값.
- false_value: 조건이 거짓일 때 반환할 값
IF와 CASE의 차이점
- IF:
- 단순 조건 평가와 반환에 적합.
- MySQL에서만 지원되며, 간단한 조건 처리에 사용.
- CASE:
- 복잡한 조건 처리와 다중 조건 분기에 적합.
- 대부분의 DBMS에서 지원되며, 더 유연하게 사용 가능.
예제
1. 급여가 7000 이상인지 평가
문제: 급여가 7000 이상이면 "High", 그렇지 않으면 "Low"를 반환하려면?
SELECT employee_id,
salary,
IF(salary >= 7000, 'High', 'Low') AS salary_level
FROM Employees;
2. 조건에 따라 숫자 반환
문제: 급여가 7000 이상이면 1, 그렇지 않으면 0을 반환하려면?
SELECT employee_id,
salary,
IF(salary >= 7000, 1, 0) AS salary_flag
FROM Employees;
활용 예제
1. WHERE 절에서 사용
문제: 급여가 7000 이상인 직원만 조회하려면?
SELECT employee_id, salary
FROM Employees
WHERE IF(salary >= 7000, TRUE, FALSE);
2. GROUP BY와 함께 사용
문제: 급여가 "High"와 "Low"로 그룹화하려면?
SELECT IF(salary >= 7000, 'High', 'Low') AS salary_level,
COUNT(*) AS employee_count
FROM Employees
GROUP BY salary_level;
3. ORDER BY에서 사용
문제: 급여가 높은 직원을 먼저 정렬하려면?
SELECT employee_id, salary
FROM Employees
ORDER BY IF(salary >= 7000, 1, 0) DESC;
'SQL > 개념' 카테고리의 다른 글
COALESCE 함수 (0) | 2024.11.15 |
---|---|
REGEXP 함수 (MySQL) (0) | 2024.11.14 |
DATEDIFF 함수 (0) | 2024.11.12 |
DATE_FORMAT 함수 (0) | 2024.11.11 |
SUBSTRING 함수 (0) | 2024.11.10 |