[MySQL] IF, IFNULL, CASE, COALESCE

codeing999·2023년 3월 8일
0

MySQL

목록 보기
7/13
post-custom-banner

IF문

IF(10>5,true, false)
  • 이런 식으로 IF(조건, 참일 때 값, 거짓일 때 값) 순서
  • SELECT 뒤에도 올 수 있음. if만 쓰거나 할 땐 from도 필요없고 그냥 select문 쓰면 됨.

IFNULL

SELECT IFNULL(Column, "Null일 경우 대체 값") FROM 테이블명; 
  • if와 is null을 사용한 다음을 줄인 버전이라 보면 된다.
SELECT IF(IS NULL(NAME), "No name", NAME) as NAME
FROM ANIMAL_INS

CASE

  • if랑 비슷한데 분기가 여러가지 일 때 쓰라는 것 같음.

    주의할 것이, update문에서 썼을 때 when이나 else어디로도 처리하지 않은 경우엔 그대로 두는게 아니고, 디폴트값으로 변경해버리는 것 같다. 그러니 case를 쓸땐 모든 케이스를 다 처리해줘야한다.

CASE 
    WHEN 조건식1 THEN1
    WHEN 조건식2 THEN2
    ...
    ELSE 조건에 맞는경우가 없는 경우 실행할 식
END
  • 다음과 같이 카운트할 때 해당 조건일 때만 세겠다고할 때도 쓸 수 있긴하다. 근데 이런 조건을 걸거면 보통은 그냥 where에 거는 게 맞고. 출력되는 레코드랑 카운트하는게 다를 때만 여기다 조건 사용. ELSE를 쓰지않고 모든 조건에도 안맞은 경우는 null을 반환하는데 count가 널일 경우에는 카운트를 안하나 봄.
COUNT(CASE
   WHEN 조건식1 THEN 1 
	END)

COALESCE

지정한 표현식들 중 null이 아닌 첫번째 값을 반환. 모두 null이면 null반환

// NULL 처리 상황
SELECT COALESCE(Column1, Column1NULL인 경우 대체할 값)
FROM 테이블명


// 배타적 OR 관계 열
// Column1 ~ 4 중 NULL이 아닌 첫 번째 Column을 출력
SELECT COALESCE(Column1, Column2, Column3, Column4)
FROM 테이블명
profile
코딩 공부 ing..
post-custom-banner

0개의 댓글