[Database] 흐름 제어

원알렉스·2020년 7월 6일
0

Database

목록 보기
13/15
post-thumbnail

흐름 제어

  • MySQL은 프로그램의 순차적인 흐름을 제어해야 할 때 사용할 수 있는 다양한 연산자와 함수를 제공해줍니다.
  1. CASE
  2. IF()
  3. IFNULL()
  4. NULLIF()

1) CASE

  • CASE 연산자는 값을 서로 비교하거나, 표현식의 논리값에 따라 다른 값을 반환합니다.
CASE []
  WHEN [비교값1] THEN [결과값1]
  WHEN [비교값2] THEN [결과값2]
  ELSE [결과값3]
END

CASE
  WHEN [표현식1] THEN [결과값1]
  WHEN [표현식2] THEN [결과값2]
  ELSE [결과값3]
END

2) IF()

  • IF() 함수는 첫번째 인수로 전달받은 표현식의 논리값에 따라 다른 값을 반환합니다.
IF(expr1, expr2, expr3)
  • 만약 expr1이 참이면 expr2를 반환하고, 거짓이면 expr3를 반환합니다.
  • Ex)
SELECT IF(0 < 1, 'yes', 'no');

3) IFNULL()

  • IFNULL() 함수는 첫번째 인수로 전달받은 값이 NULL인지 아닌지를 검사하여 다른 값을 반환합니다.
IFNULL(expr1, expr2)
  • 만약 expr1의 값이 NULL이 아니면 expr1 그 자체를 반환하고, NULL이면 expr2를 반환합니다.
  • Ex)
SELECT IFNULL(NULL, '전달받은 값이 NULL입니다');

4) NULLIF()

  • NULLIF() 함수는 인수로 전달받은 두 값이 서로 같은지를 검사하여 다른 값을 반환합니다.
NULLIF(expr1, expr2)
  • 만약 expr1과 expr2의 값이 서로 같으면 NULL을 반환하고, 같지 않으면 expr1을 반환합니다.
  • 따라서 NULLIF() 함수는 다음 CASE 문과 같은 동작을 수행합니다.
CASE
  WHEN expr1 = expr2 THEN NULL
  ELSE expr1
END
profile
Alex's Develog 🤔

0개의 댓글