-
[Oracle] 함수(Function) - 변환형 함수RDS/Oracle 2019. 3. 3. 10:00반응형
변환형 함수
변환형 함수는 특정 데이터 타입을 다양한 형식으로 출려겨하고 싶을 경우에 사용되는 함수입니다.
명시적(Explicit) 데이터 유형 변환 - 데이터 변환형 함수로 데이터 유형을 변환하도록 명시해 주는 경우
암시적(Implicit) 데이터 유형 변환 - 데이터베이스가 자동으로 데이터 유형을 변환하여 계산하는 경우
암시적 데이터 유형 변환의 경우 성능 저하가 발생할 수 있으며, 자동적으로 데이터베이스가 알아서 계산하지 않는 경우가 있어 에러를 발생할 수 있으므로 명시적인 데이터 유형 변환 방법을 사용하는 것이 바람직합니다.
변환형 함수 종류
TO_NUMBER(문자열) - Alphanumeric 문자열을 숫자로 변환합니다.
TO_CHAR(숫자|날짜 [, FORMAT]) - 숫자나 날짜를 주어진 FORMAT 형태로 문자열 타입으로 변환합니다.
TO_DATE(문자열 [, FORMAT]) - 문자열을 주어진 FORMAT 형태로 날짜 타입으로 변환합니다.
NVL(표현식1, 표현식2) - 표현식1의 결과값이 NULL이면 표현식2의 값을 출력합니다. 단, 표현식1과 표현식2의 결과 데이터 타입이 같아야 합니다.
DECODE(표현식, 기준값1, 값 [, 기준값2, 값2, ... , 디폴트값) - 표현식의 값이 기준값1이면 값1이 출력하고, 기준값2이면 값2가 출력됩니다. 그리고 기준값이 없으면 디폴트 값이 출력됩니다.
날짜 출력 형식의 종류
YYYY - 년도 표현(4자리)
YY - 년도 표현(2자리)
MM - 월을 숫자로 표현
MON - 월을 문자로 표현
DAY - 요일을 문자로 표현
DY - 요일을 문자로 표현(약어)
시간 출력 형식의 종류
AM 또는 PM - 오전(AM), 오후(PM) 시각 표시
HH 또는 HH12 - 시간(1~12)
HH24 - 24시간으로 표현(0~23)
MI - 분 표현
SS - 초 표현
NULL 특성
1.널 값은 아직 정의되지 않은 값으로 0 또는 공백과는 다릅니다. 0은 숫자이고 공백은 문자입니다.
2.테이블을 생성할 때 NOT NULL 또는 PRIMRAY KEY로 정의되지 않은 모든 데이터 유형은 널 값을 포함할 수 있습니다.
3.널 값을 포함하는 연산의 경우 결과 값도 널 값입니다.
4.결과값을 NULL이 아닌 다른 값을 얻고자 할 때 NVL 함수를 사용합니다.
변환형 함수 예시
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647SELECT SYSDATE, TO_CHAR(SYSDATE, 'YYYY'), TO_CHAR(SYSDATE, 'YY'), TO_CHAR(SYSDATE, 'MM'), TO_CHAR(SYSDATE, 'MON'), TO_CHAR(SYSDATE, 'DAY'), TO_CHAR(SYSDATE, 'DY')FROM DUAL;SELECT SYSDATE, TO_CHAR(SYSDATE, 'AM'), TO_CHAR(SYSDATE, 'PM'), TO_CHAR(SYSDATE, 'HH'), TO_CHAR(SYSDATE, 'HH12'), TO_CHAR(SYSDATE, 'HH24'), TO_CHAR(SYSDATE, 'MI'), TO_CHAR(SYSDATE, 'SS')FROM DUAL;SELECT SYSDATE, TO_DATE('2019/03/03', 'YYYY/MM/DD'), SYSDATE - TO_DATE('2019/03/03', 'YYYY/MM/DD')FROM DUAL;SELECT SYSDATE, TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS')FROM DUAL;SELECT SYSDATE, TO_CHAR(SYSDATE + 3/24, 'yyyy"년" mm"월" dd"일" hh"시" mm"분"')FROM DUAL;SELECT ENAME, DEPTNO, DECODE(DEPTNO, 10, 'ACCOUNTING', 20, 'RESEARCH', 30, 'SALES', 40, 'OPERATTIONS' ) AS DNAMEFROM EMP;SELECT ENAME, JOB, SAL, DECODE(JOB, 'CLERK', SAL * 1.05, 'MANAGER', SAL * 1.15, SAL) AS UP_SALFROM EMP;cs 반응형'RDS > Oracle' 카테고리의 다른 글
[Oracle] ORDER BY 절 (0) 2019.03.10 [Oracle] GROUP BY, HAVING 절 (0) 2019.03.10 [Oracle] 함수(Function) - 날짜형 함수 (0) 2019.03.03 [Oracle] 함수(Function) - 숫자형 함수 (0) 2019.03.02 [Oracle] 함수(Function) - 문자형 함수 (0) 2019.03.02