데이터베이스/Oracle SQL

오라클 SQL과 PL/SQL ( 형 변환 함수 - 2 )

동띠기 2021. 7. 15. 20:27

TO_CHAR 함수 : 숫자형 -> 문자형으로 변환

 

종류 의미 사용 예 결과
9 9의 개수만큼 자릿수 TO_CHAR(1234, '99999') 1234
0 빈자리를 0으로 채움 TO_CHAR(1234, '099999') 001234
$ $표시를 붙여서 표시 TO_CHAR(1234, '$9999') $1234
소수점 이하를 표시 TO_CHAR(1234, '9999.99') 1234.00
천 단위 구분 기호를 표시 TO_CHAR(1234, '99,999') 12,345

 

문제 1. EMP 테이블을 조회하여 이름이 ALLEN인 사원의 사번과 이름과 연봉을 출력하세요,
단 연봉은 (SAL * 12) + COMM으로 계산하고 천 단위 구분 기호로 표시하세요.

풀이 :

더보기

SELECT EMPNO, ENAME, SAL, COMM, TO_CHAR(SAL * 12 + COMM, '99,999') "SALARY" 

FROM EMP 

WHERE ENAME = 'ALLEN';

 


문제 2. PROFESSOR 테이블을 조회하여 201번 학과에 근무하는 교수들의 이름과 급여, 보너스, 연봉을 아래와 같이 출력하세요,
단 연봉은 (PAY * 12) - BOUNS로 계산합니다.

 

풀이 :

더보기

SELECT NAME, PAY, BONUS, TO_CHAR((PAY * 12) + BONUS, '999,999') "TOTAL" 
FROM PROFESSOR 
WHERE DEPTNO = 201;

* SUSAN의 보너스는 NULL 이라서 결과값에 포함 안됨.

 

EMP테이블을 조회하여 COMM 값을 가지고 있는 사람들의 EMPNO, ENAME, HIREDATE, 총연봉, 15% 인상 후 연봉을 아래 화면 처럼 출력하세요
단, 총 연봉은 (SAL*12)+COMM으로 계산하고 화면에서는 SAL로 출력되었으며 15%인상한 값은 총 연봉의 15% 인상값 입니다.
(HIREDATE 컬럼의 날짜형식과 SAL 컬럼, 15% UP 컬럼의 $표시와 기호가 나오게 하세요.

 

풀이 :

더보기

SELECT EMPNO, ENAME, TO_CHAR(HIREDATE, 'YYYY-MM-DD') HIREDATE, 
          TO_CHAR((SAL * 12) + COMM, '$999,999') "SAL", 
          TO_CHAR(((SAL * 12) + COMM) * 1.15, '$999,999') "15% UP" 
FROM EMP 
WHERE COMM IS NOT NULL;

 

TO_NUMBER 함수 : 숫자가 아닌 숫자처럼 생긴 문자를 수자로 바꾸어 주는 함수

문자 5를 숫자 5로
A는 숫자가 아님으로 에러발생

 

A의 아스키코드값을 숫자로 변환

 

TO_DATE 함수 : 날짜가 아닌 날짜처럼 생긴 문자를 날짜로 바꾸어 주는 함수

 

여러 날짜 변환

 

728x90