개발 언어들 정리/SQL

[SQL] IF , CASE, IFNULL

notx2wice 2022. 1. 1. 15:08

IF

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

SELECT IF(2 > 1, 'TRUE', 'FALSE') AS result

기본 사용 방식은 엑셀의 =IF() 와 같다.
아래와 같이 특정 컬럼 값의 조건에 의해서, 다른 컬럼의 출력하는 분기 처리도 가능하다.
엑셀 처럼 중첩 IF 의 사용도 가능하다.

SELECT IF(column_name is null, column_1, columnj_2) AS result

 


IFNULL

IFNULL(column_name, value)

 

IFNULL() 함수는 해당 필드의 값이 NULL 을 반환할 때, 지정한 값으로 대체하여 출력해준다. 간단한 사용법은 아래와 같다.

SELECT IFNULL(column_name, '대체할 값') FROM [table_name]; 

이 역시 중첩해서 사용할 수 있다.

SELECT IFNULL(column_name, IFNULl(column_name, '대체할 값')) FROM [table_name]; 

 

 


CASE WHEN

CASE value 혹은 조건 WHEN value1 THEN result1 WHEN value2 THEN result2 … [ELSE else_result] END

SELECT
	CASE
		WHEN permission_type_id = 1
		THEN '관리자'
		WHEN permission_type_id = 2
		THEN '판매자'
		ELSE '일반 유저'
END	

WHEN 과 THEN 은 쌍을 이루어 사용해야 한다.
WHEN 조건 혹은 값 THEN 은 여러 번 사용할 수 있으며, 마지막 ELSE 는 모든 조건이 아닐 때 출력되는 값을 지정한다. Java  JavaScript 의 switch case 문이라고 보면 된다. SQL 에서는 SELECT 절에 들어갈 수도 있고, FROM 절 혹은 WHERE 절에 들어갈 수도 있다.

 

'개발 언어들 정리 > SQL' 카테고리의 다른 글

[SQL] 총정리 -- 작성중  (0) 2022.06.07
[SQL] 사용시 주의 사항 모음  (0) 2021.12.31
[SQL] 프로그래머스 SQL KIT 풀이  (0) 2021.12.31