본문 바로가기
🛠️Skill/SQL

[SQL문법] CASE WHEN / IF, IFNULL, ISNULL

by Istj_eff 2022. 11. 2.

1. CASE WHEN ~ THEN ~ ELSE ~ END

💡 SELECT CASE WHEN 조건1 THEN 결과값1
                                WHEN 조건2 THEN 결과값2
                                ELSE
결과값3 END
      FROM 테이블 이름 ;

 

▶ CASE WHEN 예제

SELECT *,
	   CASE WHEN Mkt_Capitalization_USD > 1000000 THEN 'BIG' -- MKT가 100만이상이면 BIG
			WHEN Mkt_Capitalization_USD > 500000 THEN 'MIDDLE' -- MKT가 50만이상이면 MIDDLE
			ELSE 'SMALL' -- 아니라면 SMALL이라고 표시하고 
			END AS 그룹 -- 그룹이라고 컬럼명 지정
FROM stock_info
ORDER BY Mkt_Capitalization_USD DESC ;

 


2. IF문

IF(조건문, 참일때값, 거짓일때 값) 

참일때 값은 필수, 거짓일때 값은 선택

💡 SELECT IF(조건문, 참일때 값, 거짓일때 값)
      FROM 테이블;

 

IF문 예제

# 1
SELECT IF(10 > 1, 'TRUE', 'FALSE')
FROM TABLE1

# 2
SELECT IF(col_name is null, col1, col2)
FROM TABLE2

 

 

2-1. IFNULL

※ MySQL사용

💡 SELECT IFNULL(지정한 값, 대체할 값)
      FROM 테이블;

"지정한 값"이나 컬럼에 NULL이면 "대체할 값"으로 대체해서 출력한다.

 

 IFNLL문 예제

SELECT IFNULL(col1, "없음") AS col1
FROM TABLE1;

 

 

2-2. ISNULL

※ MySQL에서 ISNULL은 없고, IFNULL만 사용한다. ISNULL은 MSSQL에서 사용한다.

💡 SELECT ISNULL(지정한 값, 대체할 값)
      FROM 테이블;

"지정한 값"이 NULL이면 "대체할 값"으로 대체해서 출력한다.

 

 


CASE WHEN, IF문 사용해서 푼 프로그래머스 문제

 

2022.11.07 - [Data Analytics/Programmers] - [프로그래머스] 중성화 여부 파악하기 / CASE WHEN / IF

 

[프로그래머스] 중성화 여부 파악하기 / CASE WHEN / IF

# [1] SELECT ANIMAL_ID, NAME, CASE WHEN SEX_UPON_INTAKE LIKE '%Neutered%' THEN 'O' WHEN SEX_UPON_INTAKE LIKE '%Spayed%' THEN 'O' ELSE 'X' END AS '중성화' FROM ANIMAL_INS ORDER BY ANIMAL_ID # [2] SELECT ANIMAL_ID, NAME, IF(SEX_UPON_INTAKE LIKE '%NEUTERED

dataanalysisdot.tistory.com

 

 

 

 

댓글