변환함수 SQL

Aiden·2020년 7월 20일
0

애이콘 아카데미

목록 보기
3/3

단일행 함수 - 변환함수 SQL
 변환 함수
: 데이터 타입을 다른 데이터 타입으로 변환하는 함수.
 데이터 타입의 변환 방법
1. 묵시적 형 변환 ( 권장 안함 )
2. 명시적 형 변환 ( 함수 이용 )

select empno, ename
from emp where empno = '7900';

select empno, ename
from emp where empno = to_number('7900');

TO_CHAR 함수

  • 숫자, 날짜, 문자열을 지정한 형식의 VARCHAR2 문자열로 변환하는 함수 .
    문제) EMP 테이블에서 10번 부서 중 입사 일자를 '1998년 1월 1일'의 형태로
    출력?
    select ename, hiredate,to_char(hiredate,'YYYY"년" MM"월" DD"일"')
    from emp where deptno = 10;

select ename, hiredate, to_char(hiredate,'YYYY"년" MM"월" DD"일"')
from emp where to_char(hiredate,'YY')='81';

문제) EMP 테이블에서 부서 20중 급여 앞에 $를 삽입하고 3자리마다 ,를 출
력?
select empno, ename, job, sal, to_char(sal, '$999,999')
from emp
where deptno = 20
order by sal desc;

TO_NUMBER 함수

  • 숫자를 포함하는 문자열을 숫자로 변환하는 함수 .
    select to_number('1234'+'100') from dual;

TO_DATE 함수

  • 날짜를 나타내는 문자열을 명시된 날짜로 변환 .
    select to_date('20200716','YYYYMMDD') from dual;

오라클의 디폴트값이 RR/MM/DD이기 때문에 포멧을 변환시켜줘야
YYYY/MM/DD로 출력이 가능하다
alter session set nls_date_format='YYYY/MM/DD HH24:MI:SS';
변환후 출력가능.
select to_date('20200716','YYYYMMDD') from dual;

select to_date('19990220181030','YYYYMMDDHH24MISS') from dual;

CASE 함수 ( ANSI )
select empno, ename, sal, job,
CASE job WHEN 'ANALYST' THEN SAL1.1
WHEN 'CLERK' THEN SAL
1.2
WHEN 'MANAGER' THEN SAL1.3
WHEN 'PRESIDENT' THEN SAL
1.4
WHEN 'SALESMAN' THEN SAL*1.5
ELSE SAL
END "급여"
FROM EMP;

SELECT EMPNO, ENAME, SAL,
CASE WHEN SAL >=0 AND SAL <= 1000 THEN 'E'
WHEN SAL > 1000 AND SAL <= 2000 THEN 'D'
WHEN SAL > 2000 AND SAL <= 3000 THEN 'C'
WHEN SAL > 3000 AND SAL <= 4000 THEN 'B'
WHEN SAL > 4000 AND SAL <= 5000 THEN 'A'
END "등급"
FROM EMP
ORDER BY "등급";

0개의 댓글