◆ 컬럼값 변경 출력 키워드 - DECODE, CASE
원래의 컬럼값이 아닌 컬럼값의 조건에 따라 다른값으로 출력할 수 있는 키워드 중 DECODE 와 CASE가 있다.
▶ DECODE
DECODE(변경할컬럼명, before값 조건, after 변경할 값, ... , 디폴트값) 형태로 사용되며, DECODE안에 DECODE를 중첩으로 사용할 수 있다.
SELECT deptno, DECODE(deptno, 10 , 'ACCOUNTING' ,
20 , 'RESEARCH' ,
30 , 'SALES', 'OPERATIONS') name
FROM dept;
// deptno값이 10이면 ACCOUNTING로 바꿔서 출력하고,
20->RESEARCH,
30->SALSE
나머지-> OPERATIONS로 출력 된다.
- 아래와 같이 다양한 방법으로 사용할 수 있다.
SELECT deptno, DECODE(deptno, 10 , SUM(sal),
20 , MAX(sal),
30 , MIN(sal)) sal
FROM emp
GROUP BY deptno;
▶ CASE
DECODE의 조건은 ==로써 사용되지만, CASE에서는 좀 더 다양한 비교연산을 사용할 수 있다는 장점이 있다.
사용예
SELECT deptno,
CASE deptno
WHEN 10 THEN 'ACCOUNTING'
WHEN 20 THEN 'RESEARCH'
WHEN 30 THEN 'SALES'
ELSE 'OPERATIONS'
END as "Dept Name"
FROM dept;
SELECT ename ,
CASE
WHEN sal < 1000 THEN sal+(sal*0.8)
WHEN sal BETWEEN 1000 AND 2000 THEN sal+(sal*0.5)
WHEN sal BETWEEN 2001 AND 3000 THEN sal+(sal*0.3)
ELSE sal+(sal*0.1)
END sal
FROM emp;
◆ select 임의의 고정 값 출력
select 쿼리문에서 고정값이 담겨있는 가상의 새로운 컬럼을 출력하는 방법으로,
문자열 as 컬럼명을 통한 추출 방법이 있다.
select
V_CATEGORYCD1,
V_CATEGORYCD2,
V_CATEGORYCD3,
'고정값' as 뉴컬럼 from SHOP_PRODUCT_CATEGORY;
◆ 문자 길이 맞춰서 출력하기( LPAD, RPAD )
특정 컬럼의 값의 길이를 모두 동일하게 맞추고자 할 때 사용하는 키워드로 LPAD와 RPAD가 있다.
LPAD는 왼쪽에서 길이에 맞게 채워주고, RPAD는 오른쪽으로 길이에 맞는 문자를 채워준다.
select LPAD(AGE, 5, '*') from member;
// => 값이30이면 ***30
select RPAD(AGE, 5, '*') from member;
// => 값이30이면 30***