본문 바로가기
Language/MySQL

SQL 일반 함수

by Mesut Özil 2024. 1. 22.

SQL 일반 함수

 

1. IFNULL 함수

  • IFNULL(value1, a)
  • value1NULL이면 지정 값 a 반환하고, 그렇지 않으면 value1 반환
SELECT IFNULL(NULL, '재고 소진')
#결과: '재고 소진'

SELECT IFNULL(15, '재고 소진')
# 결과: 15

 

2. COALESCE 함수

  • COALESCE(value1, value2, ..., valuen)
  • 주어진 값들 중에서 첫 번째로 NULL이 아닌 값 반환
  • 모든 값이 NULL일 경우 NULL 반환
SELECT COALESCE(NULL, 'Value1', 'Value2')
# 결과: Value1

SELECT COALESCE(NULL, NULL, 'Value3')
# 결과: Value3

 

3. NULLIF 함수

  • NULLIF(value1, value2)
  • 두 값이 같으면 NULL을 반환하고, 다르면 value1 값을 반환
  • 두 값이 같을 때 NULL을 반환하고자 할 때 유용
SELECT NULLIF(10, 10)
# 결과: NULL

SELECT NULLIF(20, 10)
# 결과: 20

 

4. IF 문

  • IF(조건식, True_value, False_value)
  • 주어진 조건식이면 True_value, 그렇지 않으면 False_value 반환
SELECT value,
  IF(value > 30, 'High', 'Low')
FROM example_data;

# 결과
+-------+----------+
| value | Category |
+-------+----------+
|  15   |   Low    |
|  35   |   High   |
|  25   |   Low    |
|  50   |   High   |
+-------+----------+

 

5. CASE 문

  • CASE
               WHEN
    [조건1] THEN [지정 값1]
               WHEN [조건2] THEN [지정 값 2]
               ELSE [지정 값 3]
    END
  • 여러 조건을 평가하고 조건에 따른 각자의 결과를 반환
SELECT score,
  CASE
    WHEN grade >= 90 THEN 'A'
    WHEN grade >= 80 THEN 'B'
    WHEN grade >= 70 THEN 'C'
    ELSE 'D'
  END AS Grade
FROM student_scores;

# 결과
+-------+-------+
| score | Grade |
+-------+-------+
|  95   |   A   |
|  85   |   B   |
|  90   |   A   |
|  60   |   D   |
+-------+-------+

 

 

 

'Language > MySQL' 카테고리의 다른 글

SQL 순위 함수  (0) 2024.01.28
SQL 집계 함수  (0) 2024.01.26
SQL 날짜형 함수  (0) 2024.01.21
SQL 문자형 함수  (0) 2024.01.20
SQL 숫자형 함수  (0) 2024.01.19