본문 바로가기
SQL

SQL_ CASE(조건) 와 NULL(변경)

by haheaven 2021. 8. 22.

 

case문

: 다중조건 사용

 

- 단순 값 변경할 때 

case 컬럼이름
  WHEN 값 THEN 값
  WHEN 값 THEN 값
  WHEN 값 THEN 값
  ELSE 값
END

 

- 조건 걸어 값 변경할 때

CASE
  WHEN 조건1 THEN 값
  WHEN 조건2 THEN 값
  WHEN 조건3 THEN 값
  ELSE 값
END

* 예제

SELECT product_name, price,
  CASE 
	WHEN price >70000 THEN '세일 10%'
    WHEN price > 50000 THEN '세일 5%'
    ELSE '세일없음'
   END AS '세일%'
 FROM shopping_mall.product;

 

 

 


 

- NULL 값을 변경

 

 

 

 

방법1. case 문 활용 

SELECT 
   CASE
      WHEN 컬럼명 is  not null THEN 컬럼값(그대로반환)
      ELSE '넣을값' 
   END 
 FROM 테이블명;

 

 

 

 

 

 

 

방법2. COALESCE 활용 

SELECT COALESCE(컬럼명 ,'넣을값') From 테이블명

 

*예제

SELECT COALESCE(is_deleted , 'NO') as 삭제여부 FROM product;

 

 

 

 

 

 

방법3. IFNULL 

: null아니면  컬러명 반환, null이면 넣을값 리턴

SELECT IFNULL(컬럼명, '넣을값') FROM 테이블명

 

* 예제

SELECT name, gender, age, email,
     IFNULL(email, '이메일입력부탁드립니다.') AS 'IFNULL'
 FROM shopping_mall.user;

 

 

 

 

 

 

방법4. IS NULL

UPDATE 테이블명 SET 컬럼명 = '바꿀값' WHERE (컬럼명 is NULL);

(IS NULL과 = NULL 은 사용이 다르므로 null 값 변경시 = null 사용 x)

 

*예제

UPDATE user SET email = '이메일 입력' WHERE (email is NULL);

 

 

 

 

 

방법5. IF문 

SELECT IF(컬럼, true일때 값리턴, , false일때 값리턴) FROM 테이블명;

 

*예제

 SELECT 
  `name`, email, IF(email IS NOT NULL, email, "이메일을 입력해주세요") AS 'if문으로 변경'
FROM user;

 

'SQL' 카테고리의 다른 글

ORACLE_여러 행을 한 행으로 조회하기  (0) 2022.08.05
ORACLE_LOCK 개체 확인 및 KILL(해제)  (0) 2022.08.05
SQL_데이터타입 / DATE  (0) 2021.08.21
SQL_기초2  (0) 2021.08.20
SQL_기초1  (0) 2021.08.19

댓글