본문 바로가기
Database

SELECT CASE 를 사용해서 DB의 특정 값을 다른값으로 표현하기

by 쁘니쁘나 2021. 2. 18.

 

DB Table의 특정 컬럼에서 특정 값이 왔을 때 표현을 달리하고 싶다면?

예를 들어, callType 이라는 컬럼에는 숫자형으로만 값이 들어오는데 SELECT 하여 조회할 때 1은 '발신', 2는 '착신'으로 표시되게 해야 하는 경우를 보자.

 

call_test라는 테이블에 데이터가 아래와 같이 들어있다.

 

 

여기서 CALLTYPE의 자료형이 숫자라 값이 숫자로만 들어오는데 1은 '발신', 2는 '착신'을 뜻한다.

이때 1을 '발신'으로 2를 '착신'으로 그 외 나머지 값을 들어오는 숫자 그대로 표현되게 하고 싶다면?

아래와 같이 SELECT CASE 문을 사용하면 된다.

 

select seq, stime, callType, (case 컬럼이름 when 1 then '발신' else 
	(case 컬럼이름 when 2 then '착신' else to_char(컬럼이름) end) end) as 통화유형 from 테이블명;

 

 

실제로 테이블명과 대상 컬럼을 넣어 조회해보면 아래와 1일 때 발신, 2일 때 착신, 그 외의 값일 때에는 들어오는 값 그대로 나타내 주는 것을 알 수 있다.

 

select seq, stime, callType, (case calltype when 1 then '발신' else 
	(case calltype when 2 then '착신' else to_char(calltype) end) end) as 통화유형 from call_test;

 

 

 

 

댓글