본문 바로가기

Database/mariaDB administrator

mysql의 NVL! ifnull(), if(), case 문 사용법

mysql의 NVL! ifnull(), if(), case 문 사용법

안녕하세요.

 

mysql에서 oracle의 NVL, NVL2 함수를 대체하는 함수가 무엇이 있을까요?

 

바로 ifnull, if 함수가 있습니다.

 

더불어 함께 사용 되는 비슷한 함수로는 case문이 있습니다.

 

위에서 언급한 3가지 함수 모두 "어떤 조건 일 때 데이터를 어떻게 바꾸어라!"라는 큰 틀이 안에서 움직이는 함수들입니다. 바로 조건문이라고도 하는데요, SQL에서 상당히 많이 쓰이는 함수들입니다.

 

그만큼 이 함수들에 대해서 잘 알아야지 SQL을 작성하는데 큰 도움이 될 것입니다.

 

위에서 언급한 ifnull, if, case 각각의 함수의 특징이나 사용하게 되는 경우가 비슷하여 무엇을 사용해야 하는지 혼란스러울 수도 있으나, 자신이 가장 손에 잘 익은 녀석을 골라서 사용하시면 됩니다. 결과를 출력해 낼 수만 있다면 말이죠!

 

저 같은 경우는 세 가지를 모두 두루두루 사용을 하는데, 대상 데이터에 null이 있다면 ifnull을 사용하는 편이고, 조건이 2~3가지 정도라면 if 함수를 사용하고요, 4가지 이상의 조건이 들어가게 되면 case 문을 사용합니다.

 

세 가지 함수의 사용법을 쉽게 설명해 드리겠습니다.

 

아마 평소에 SQL을 좀 다뤄 보신 분들이라면 예문만 봐도 충분히 사용법을 숙지하실 수 있으실 겁니다.

 

제가 간단하게 예문을 보여드리겠습니다.

 

<ifnull>

ifnull(data, 'null 대신 들어갈 문자나 숫자, 또는 컬럼명')

select name, dept, salary, ifnull(bonus, '해당없음') from class.salary;

 

<if>

if(조건, 조건 성립시 출력, 조건 미성립시 출력)

select name, dept, salary, if(salary >= 300, '고액연봉자', '일반연봉자') from class.salary;

 

<case>

select name 
	, case when dept = 'A' then '경영지원부' 
		   when dept = 'B' then '영업부' 
		   when dept = 'C' then '회계팀' end as dept 
	, salary 
	, bonus 
from class.salary;

간단하게 예문을 알려드렸습니다.

 

여기에 대해서 좀 더 상세하게 공부를 하고 싶으신 분은 아래에 <SQL독학 강의>를 보러 오시면 됩니다.

 

감사합니다.

 

 

2020/04/07 - [Database/sql 강의] - sql 독학 강의 # 단일행 함수 잘 사용 하기(일반 함수) 8편 -sTricky

 

sql 독학 강의 # 단일행 함수 잘 사용 하기(일반 함수) 8편 -sTricky

sql 독학 강의 # 단일행 함수 잘 사용 하기(일반 함수) 8편 -sTricky 컨텐츠 index 1. ifnull 함수 사용 하기 2. if 함수 사용 하기 3. case 함수 사용 하기 4. ifnull, if, case를 복합적으로 사용 하기 안녕하..

stricky.tistory.com

 

 

by.sTricky