13강 oracle SQL 변환함수.
-- 05. 형변환 함수
-- 오라클을 사용하다보면 숫자, 문자, 날짜의 데이터 형을 다른 데이터형으로 변환해야 하는 경우가 있는데 이럴 때 사용하는 함수가 형 변환 함수입니다.
-- 형 변환 함수로는 TO_NUMBER, TO_CHAR, TO_DATE가 있습니다.
-- 5.1 현재 날짜를 'YYYY-MM-DD' 형식으로 출력해보기.
select sysdate, to_char(sysdate, 'yyyy-mm-dd') from dual;
select sysdate, to_char(sysdate, 'yyyy-mm-dd hh:mi:ss') from dual;
-- 문자형으로 변환하는 to_char 함수 날짜형을 문자형으로 변환하기.
select hiredate, to_char(hiredate, 'yyyy/mm/dd day') from emp;
-- 년도를 2자리(yy)로 표현하고 월은 문자(MON)으로 표시하고 요일을 약어(dy)로 표시한 예입니다.
select hiredate, to_char(hiredate, 'yy/mon/dd dy') from emp;
-- 현재 날짜와 시간을 출력하는 예제
select to_char(sysdate, 'yyyy/mon/dd, hh24:mi:ss') from dual;
-- 1230000이란 숫자를 문자형태로 출력하는 예입니다.
select to_char(1230000) from dual;
-- 각 지역별 통화 기호를 앞에 붙이고 천 단위마다 콤마를 붙여서 출력(예:\1,230,000) 하려면 어떻게 해야 할까요? 위 표를 참조하여 다음과 같이 표현해야 합니다.
select to_char(sal, 'l999,999') from emp;
-- 9는 자릿수를 나타내며 자릿수가 맞지 않으면 채우지 않습니다. 하지만 0은 자릿수를 나타내며 자릿수가 맞지 않을 경우 0으로 채웁니다.
select to_char(123456, '000000000'), to_char(123456, '999,999,999') from dual;
-- 5.2 날짜형으로 변환하는 to_date 함수
select ename, hiredate from emp where hiredate = to_date(19811117, 'yyyymmdd');
-- 문자열과 날짜간의 마이너스 연산은 안됨.
-- select sysdate-'2000/01/01' from dual;
select trunc(sysdate-to_date('2000/01/01', 'yyyy/dd/mm')) from dual;
-- 5.3 숫자형으로 변환하는 TO_NUMBER 함수
-- 특정 데이터를 숫자형으로 변환해 주는 함수입니다.
select to_number('20,000', '99,999') - to_number('10,000', '99,999') from dual;
-- 6. NULL을 다른 값으로 변환하는 NVL 함수
select ename, sal, comm, sal*12+comm, nvl(comm, 0), sal*12+nvl(comm, 0) from emp order by job;
-- <탄탄히 다지기>
-- 7. 모든 사원은 자신의 상관(MANAGER)이 있다. 하지만 EMP 테이블에 유일하게
-- 상관이 없는 로우가 있는데 그 사원의 MGR 컬럼 값이 NULL이다. 상관이 없는 사
-- 원만 출력하되 MGR 칼럼의 NULL 대신 CEO로 출력해봅시다.
select ename, nvl( mgr, 'ceo') from emp;
-- invalid nummgr : mgr이 숫자형이다. 그래서 형변환을 통해 변환해주어야 한다.
select ename, nvl( to_char(mgr), 'ceo') from emp;
-- null이면 ceo로 표시한다.
'Study > OracleDB' 카테고리의 다른 글
15강 오라클 SQL 조건식 (1) | 2022.09.09 |
---|---|
14강 오라클 SQL 데이터 함수의 적용 (1) | 2022.09.09 |
12강 오라클 SQL 날짜함수. (2) | 2022.09.08 |
11강 오라클 SQL 문자함수 (0) | 2022.09.06 |
10강 오라클 SQL 주요함수, 숫자함수 (3) | 2022.09.06 |