SQL CASE 함수란? DECODE 함수와 2가지 기능 알기

SQL CASE 함수에 대한 설명
SQL CASE 함수에 대한 설명

SQL CASE 함수에 대해서 이야기해봅시다.




SQL CASE 함수에 대한 이해

SQL CASE 함수SQL 쿼리(SQL Query) 문에서 조건에 따라서 값을 지정해주는 구문입니다.

CASE 함수에서는 컬럼이 특정 첫번째 조건일 때는 해당 정의된 값을, 특정 두번째 조건일 때는 해당 정의된 값을 반환하도록 하고 만약 조건에 맞지 않을 경우에는 해당 정의된 값을 반환하도록 하는 개념입니다.

SQL CASE 함수는 함수라기 보다는 구문에 가깝습니다.

CASE 함수의 경우 약어나 코드를 사용자가 보다 읽기 쉬운 값으로 변환할 때 주로 사용합니다. 그리고 데이터를 범주화할 때도 사용합니다. CASE 함수는 CASE WHEN THEN ELSE END를 사용합니다.

CASE 함수의 형태는 아래와 같습니다.


SELECT 컬럼명
CASE
WHEN 조건1 THEN A
WHEN 조건2 THEN B
ELSE C
END AS 원하는 컬럼명
FROM 테이블 명 ;

CASE 함수의 종류에는 단순 CASE 함수와 검색 CASE 함수가 있습니다.




SQL CASE 함수에 대한 설명

SQL CASE 함수는 함수와 성격이 비슷하지만 표현 방식은 함수라기 보다는 구문에 가깝습니다.

CASE 함수를 문장에 비유하지만 “A이면 B이고, C이면 D다”와 같은 형태로 표현하는 구문입니다. 그리고 필요에 따라서 각 CASE를 여러 개로 늘릴 수도 있습니다. 오라클(Oracle) SQL에서는 DECODE 함수를 사용합니다.

SQL CASE 함수는 특정 값을 원하는 방식으로 변환해서 표현해주게 하는 함수입니다.

CASE 함수에는 2가지가 종류가 있습니다. CASE 함수의 2가지 종류는 단순 CASE 함수와 검색 CASE 함수입니다.

[CASE 함수의 2가지 종류]

구분내용
1단순 CASE 함수
2검색 CASE 함수

단순 CASE 함수의 경우, CASE 문 바로 뒤에 컬럼명을 사용하고 해당 컬럼의 값과 같은지를 비교하는 CASE 함수입니다.


[단순 CASE 함수 사용 방법]

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

* ELSE는 옵션임



[단순 CASE 함수 SQL 쿼리 사용 방법 형태]

SELECT 컬럼 이름
CASE 컬럼 이름
WHEN 값 THEN 값
WHEN 값 THEN 값
WHEN 값 THEN 값
ELSE 값
END AS 값
FROM 테이블 명 ;

검색 CASE 함수의 경우 결과가 TRUE 인 조건을 만나게 되면 거기에 있는 THEN 뒤의 값을 돌려주고 CASE 함수는 종료되는 형태입니다.


[검색 CASE 함수 사용 방법]

CASE 컬럼 이름
WHEN 조건1 THEN 값
WHEN 조건2 THEN 값
WHEN 조건3 THEN 값
ELSE 값
END

* ELSE는 옵션임

[검색 CASE 함수 SQL 쿼리 사용 방법 형태]

SELECT 컬럼 이름
CASE 컬럼 이름
WHEN 조건1 THEN 값
WHEN 조건2 THEN 값
WHEN 조건3 THEN 값
ELSE 값
END AS 값
FROM 테이블 명 ;

오라클(Oracle) SQL에서는 DECODE 함수가 있으며 DECODE 함수는 CASE 함수와 동일한 기능을 가지고 있습니다.

DECODE 함수는 프로그래밍 언어에서는 IF ELSE 문의 역할을 하는 SQL 함수입니다.

DECODE 함수는 DECODE(컬럼명, 조건1, 결과1, 조건2, 결과2, 조건3, 결과3)과 같은 형태로 작성하여 사용합니다.


[DECODE 함수 사용 방법]

SELECT 컬럼명
DECODE(컬럼명, 조건1, 결과1, 조건2, 결과2, 조건3, 결과3) AS 원하는 변환 컬럼명
FROM 테이블명

CASE 문에서는 ELSE 뒤의 값이 DEFAULT 값이 되고 별도의 ELSE가 없는 경우 NULL 값이 DEFAULT 값이 되게 됩니다.