본문 바로가기
IT 프로그래밍 관련/MySQL

MySQL case end 조건식

by 지나는행인 2021. 3. 17.
728x90

MySQL에서는 조건을 만드는 식은 case 가 있다.

case  다음에 원하는 조건을 입력 후 end로 닫으며 조건을 마무리 한다.

 

아래의 테이블에서 한번 사용해 보겠다.

*books table

위는 books 테이블이다.

 

위에서 조건하에 데이터를 찾아보자. 

1
2
3
4
5
6
select title, released_year, 
    case
        when released_year >= 2000 then 'Modern'
        else '20th Century'
    end as genre                       
from books;
cs

위의 코드를 입력하면 하나의 새로운 컬럼을 만들고 그 안에 조건에 맞춰 데이터가 추가 된다.

 

새로운 컬럼이 생기는 것이기때문에 case end 는 select 옆의 컬럼명 자리에 들어가게 된다.

 

위 코드를 해석하면, books테이블의 title컬럼과, released_year컬럼을 가져오고,   

 

released_year 가 2000보다 크거나 같으면 'Modern' 데이터,

그렇지 않으면 '20th Century' 데이터를 genre 라는 컬럼으로 만들어 가져와라 .. 정도로 되겠다.

 

when 키워드 옆에 조건을 적고 then 다음에 조건이 맞을시 들어가야할 데이터를 정한다.

else 는 위의 조건이 맞지 않으면 else 다음 데이터가 들어가게 된다.

그리고 else까지 정하였다면 ,  꼭 end를 쓴다.

*코드 실행화면

위의 실행화면을 보면 , 

 

각 조건에 맞춰 genre 이라는 컬럼안에 데이터들이 추가되고 , 보여지는 것을 알 수 있다.

 

when 는 여러번 사용하여 많은 조건을 만들수도 있다.

1
2
3
4
5
6
7
select title, stock_quantity,
    case 
        when stock_quantity between 0 and 50 then '*' 
        when stock_quantity between 51 and 100 then '**'
        else '***'
    end as stock
from books; 
cs

when을 두번 사용한 코드이다.

book 테이블에서 title 컬럼과, stock_quantity 컬럼을 가져오고, 

stock_quantity 가 0부터 50 사이라면 '*' 데이터를 추가,

stock_quantity 가 51부터 100사이라면 '**' 를 추가,

그렇지않으면 '***' 를 stock 컬럼명으로 보여줘라!!   라는 뜻이다.

실행화면을 보겠다.

 

각 조건에 맞는 데이터들이 생성되고,

stock 컬럼으로 추가 되어 보여지는 것을 볼 수 있다.

 

댓글