본문 바로가기
Database/MySQL

Chapter 9. Case, If

by 더 이프 2023. 2. 3.
728x90

1. Case

 ⦁ Case는 지정한 값이 맞으면 원하는 값으로 변경 가능

 ⦁ when ~ then을 사용

 

2. If

 ⦁ if를 사용하여 조건을 줄 수 있음

 ⦁ 자바의 삼항연산자와 비슷한 방식으로 사용

 ⦁ if(조건, 참, 거짓)으로 구성

 ⦁ ifnull은 값이 null이면 원하는 조건으로 변경, nullif는 두 값을 비교하여 조건이 맞으면 그 값을 null로 변경

 

3. Example

a. case_if

SELECT 
	순번,
    도서관명,
    구분,
    도서명,
    저작자,
    출판사,
    발행연도,
    #case 사용
    case
		when 발행연도 is null then '2050'
        when 발행연도 = '' then '2090'
        else 발행연도
    end as 발행연도1,
    #if 사용
    if(ifnull(발행연도, '') = '', '2023', 발행연도) as 발행연도2,
    #두개의 값이 같으면 null을 리턴
    nullif(발행연도, '') as 발행연도3,
    #자바의 삼항연산자처럼 사용
    if(청구기호 = '', '기호없음', 청구기호) as 청구기호
FROM 
	library_mst
where
	#%는 여러개, _는 와일드카드로 특정위치를 지정
	# 발행연도 like '200_';
	# null일때만 is를 사용 
    # 발행연도 is not null;
    not 발행연도 = '';