본문 바로가기

SQL

[SQL] MySQL 함수 활용하기 -if(), ifnull(), nullif()

내장함수는 아니지만 기본 쿼리를 살펴본다.

아래 쿼리는 DB에 커넥션이 잘되었는지 확인하는 용도로 사용한다.

 

connection이 성공이라면 1 반환하고, 아니면 connection error 발생한다.

SELECT 1 FROM DUAL; -- 1

 

1말고 다른 값을 넣어도 된다. 아래 예시를 확인해보자.

SELECT 0 FROM DUAL; -- 0

SELECT true FROM DUAL; -- 1

SELECT false FROM DUAL; -- 0

SELECT 12345 FROM DUAL; -- 12345

SQL에서 FALSE 는 0, TRUE 는 1에 해당한다. 

 

IF()

형식: if(수식, 참일때, 거짓일때)

수식에 따라 참, 거짓으로 분기가 발생한다. 문자열 값이 와도 되고, 새로운 명령 실행도 가능하다. if() 문 안에 다시 if() 문으로 분기도 가능하다.

SELECT if(12 > 15, 'GOOD', 'BAD');	-- BAD

SELECT if(12 % 2 = 0, 'GOOD', 'BAD');	-- GOOD

SELECT if(1 = 0, 'NO1', if(1 != 1, 'NO2', 'YES'));	-- YES

 

IFNULL()

형식: ifnull(수식1, 수식2)

수식1 값이 null 이라면 수식2 반환, null이 아니라면 수식1가 반환된다.

SELECT ifnull(NULL, '12345');	-- 12345 => 뒤에 있는 값 반환

SELECT ifnull('ABC', 'SHOW');	-- ABC => 앞에 있는 값 반환

SELECT ifnull(1 = 1, '222');	-- 1 => 수식1이 true, 즉 1이므로 null이 아님

SELECT ifnull(1 = 0, '222');	-- 0 => 수식1이 false, 즉 0이므로 null이 아님

 

NULLIF()

형식: nullif(수식1, 수식2)

수식1과 수식2가 같다면 null 반환. 같지않다면 수식1 반환

SELECT nullif(100, 101);	-- 100

SELECT nullif(NULL, '123');	-- NULL

SELECT nullif(1+1, 2);	-- NULL

SELECT nullif(1, '1');	-- NULL

SELECT nullif('TRUE', TRUE);	-- TRUE

SELECT nullif(FALSE, TRUE);	-- 0

SELECT nullif(TRUE, FALSE);	-- 1

SELECT nullif(TRUE, !FALSE);	-- NULL

SELECT nullif(FALSE, !TRUE);	-- NULL

 

 

'SQL' 카테고리의 다른 글

[SQL] MySQL 함수 활용하기 -문자열 다루기  (0) 2022.09.27