변환함수

- 데이터 유형 : 문자형, 숫자형, 날짜형

- 데이터 유형의 변환

    1. 암시적 형변환 : 오라클이 알아서 데이터 유형을 변환시키는 것

    2. 명시적 형변환

 

  • to_char 함수 : 숫자나 날짜를 문자형으로 형변환시키는 함수
select to_char(sysdate, 'day'from dual;

오늘 무슨 요일인지 출력

  • 문자형으로 변환할 때 사용되는 날짜 포맷
    - YYYY : 숫자로 된 전체 연도
    - YEAR : 영어 철자로 표기된 연도
    - MM : 월의 2자리 값
    - MONTH : 전체 월 이름
    - MON : 월의 3자 약어
    - DY : 3문자로 된 요일 약어
    - DAY : 요일의 전체 이름
    - DD : 숫자 형식의 월간 일

  • to_number 함수 : 숫자형으로 형변환하는 함수
  • to_date 함수 : 날짜형으로 형변환하는 함수
  • to_char 로 숫자를 문자로 변환하기 : 5600은 5,600으로 바꾸려면 숫자를 문자로 형변환 해야 한다.
select to_char(sal,'999,999'from emp;

- 9는 숫자를 나타내는데, 0부터 9까지 이 자리에 어떠한 숫자가 와도 상관없다.

- 9 : 숫자를 나타낸다.

- 0 : 0이 표시되도록 강제로 적용

- $ : 부동 달러 기호 배치

- L : 부동 로컬 통화 기호 사용

- . : 소수점 출력

- , : 천 단위 표시자로 심표 출력

 

  • to_date 를 이용하여 날짜 데이터를 검색
    - ex) 81년 12월 11일에 입사한 사월들의 이름과 입사일을 출력하는 방법
select ename, hiredate
from emp
where hiredate = to_date('81/12/11''RR/MM/DD');

    - 날짜를 검색할 때는 to_date 를 사용하는 것이 좋다.

 

함수중첩

합수는 중첩해서 사용할 수 있다.

ex) 오늘부터 100달 뒤에 돌아오는 월요일의 날짜를 출력한다.

select next_day(add_months(sysdate, 100), '월요일')
from dual;
 

 

일반함수

  • nvl 함수 : null value 의 약자로 null 값 대신에 다른 값을 출력하고자 할 때 사용한다.
  • nvl2 함수 :
    ex) 이름, 월급, 커미션, 월급+커미션을 출력한다
select ename, sal, comm, nvl2(comm, sal+comm, sal)
from emp;
 

    - comm 이 null 이 아니면 sal+comm 을 출력하고, comm 이 null 이면 sal 을 출력한다

 

  • nullif 함수 : 두 값이 같으면 null 을 출력하고, 두 값이 다르면 첫번째 값을 출력하는 함수

select first_name, length(first_name) as "first name",
    last_name, length(last_name) as "last name",
    nullif (length(first_name), length(last_name)) as "nullif"
from employees;
 

  • coalesce 함수 : 두 값이 모두 null 일 때 특정 값을 출력하는 함수
select ename, comm, mgr,
    coalesce (to_char(comm), to_char(mgr), 'no comm and no mgr')
from emp;
 

  • decode 함수 : SQL 로 if - then - else 문을 구현할 수 있는 함수이다. 파생변수 생성 시 중요한 함수.
    ex) 이름, 부서번호, 보너스를 출력하는데, 부서번호가 10이면 보너스를 4000을 출력하고, 부서번호가 20이면 3000을, 나머지 부서번호는 0을 출력한다.
select ename, deptno, decode(deptno, 1040002030000"보너스"
from emp;
 

  • case 문 : decode 는 equal (등호, = ) 비교만 가능하고 부등호 비교는 case 문을 사용한다.

'Database > SQL' 카테고리의 다른 글

6. join  (0) 2020.03.17
5. 그룹함수  (1) 2020.02.17
3. 단일행 함수  (0) 2020.02.05
2. 데이터 제한 및 정렬  (0) 2020.02.01
1. 데이터 검색  (0) 2020.01.17

+ Recent posts