10.Single Row Function
by SANGGI JEON
Single Row Function
- 하나의 Row를 입력으로 받는 함수
1. 문자열 함수
- INITCAP : 첫글자만 대문자로 출력
SELECT INITCAP(ENAME), JOB
FROM emp;
- LOWWER(s) : 소문자로 변경
SELECT INITCAP(ENAME), JOB
FROM emp;
- UPPER(s) : 대문자로 변경
SELECT INITCAP(ENAME), JOB
FROM emp;
- LAPD(s1, n, s2): 문자열의 왼쪽 채움
- n : 길이
- s2 : 채울 문자
SELECT LPAD(ENAME, 10, '*')
FROM emp;
- RAPD(s1, n, s2): 문자열의 오른쪽 채움
SELECT RPAD(ENAME, 10, '*')
FROM emp;
- SUBSTR(s1, m, n) : 부분 문자열, m번째부터 길이 n인 문자열 반환
SELECT SUBSTR(HIREDATE, 4, 6)
FROM emp;
- TRANSLATE(s, from, to) : s에서 from 문자열의 각 문자를 to 문자열의 각 문자로 변환
SELECT TRANSLATE(JOB, 'CLA', '321')
FROM emp;
- CONCAT(s1, s2) : 문자열 결합
- LTRIM(s, c) : 문자열 왼쪽 c문자열 제거
- RTRIM(s, c): 문자열 오른쪽 c문자열 제거
- CHR(n): ASCII값이 n인 문자 반환
- REPLACE(s, p, r): 문자열 치환, s속의 p 문자열을 r로 치환
- ASCII(s): ASCII값 반환
- INSTR(s1, s2, m, n): 문자열 검색, s1의 m번째부터 s2 문자열이 나타내는 n번째 위치 반환
- LENGTH(s): 문자열 길이 반환
2. 숫자 함수
- ABS(n): 절대값
SELECT ABS(-5)
FROM dual;
- CEIL(n): n보다 크거나 같은 최소 정수 (예제 결과 값: -2)
SELECT CEIL(-2.4)
FROM dual;
- FLOOR(n): n보다 작거나 같은 최대 정수 (예제 결과 값: -3)
SELECT FLOOR(-2.4)
FROM dual;
- MOD(m, n): m을 n으로 나눈 나머지
SELECT MOD(3,2)
FROM dual;
- POWER(m, n): m의 n승
SELECT POWER(2,3)
FROM dual;
- ROUND(m, n): 소수점아래 n자리까지 반올림
SELECT ROUND(4.567, 2)
FROM dual;
- TRUNC(m, n): 소수점아래 n자리미만 버림
SELECT TRUNC(4.567, 2)
FROM dual;
- SIGN(n): 부호(1, 0, -1)
SELECT SIGN(-10)
FROM dual;
3. DATE 타입
- century, year, month, day, hours, minutes, seconds 등 포함한 내부 표현(7Bytes)
- Date Format에 따라 출력, 입력됨
- 기본 Date Format: ‘RR/MM/DD’ or ‘DD-MON-RR’
SELECT value
FROM nls_session_parameters
WHERE parameter = 'NLS_DATE_FORMAT';
- Date Format 변경
- user에서 변경할 경우 세션을 종료 후 다시 접속하면 원래 상태로 돌아와 있음
ALTER session SET NLS_DATE_FORMAT = 'YYYY-MM-DD';
3.1 DATE 함수
- ADD_MONTHS(d, n) : d날짜에 n달을 더함
SELECT ADD_MONTHS(HIREDATE, 6)
FROM emp;
- LAST_DAY(d) : d의 달의 마지막 날
SELECT LAST_DAY(HIREDATE)
FROM emp;
- MONTHS_BETWEEN(d1, d2): d1, d2사이의 달 수
- NEW_TIME(d, z1, z2): z1타임존의 d에서 z2타임존의 날짜 생성
- NEXT_DAY(d, day): d날 후의 첫 day요일의 날짜
- ROUND(d, fmt): fmt에 따른 날짜 반올림
- TURNC(d, fmt): fmt에 따른 날짜반올림
- SYSDATE: 현재 날짜 시간 반환
4. 변환 함수
- 묵시적 변환: 변환함수 없이도 어느정도는 자동으로 변환됨
-
자동으로 변환되지 않을때 명시적인 변환 함수 사용
- TO_DATE(s, fmt) : 문자열에서 Date 타입으로 변경
SELECT TO_DATE('20190305', 'YYYY-MM-DD')
FROM dual;
- TO_CHAR(n) : Date or 숫자 타입에서 문자열로 변경
SELECT TO_CHAR(HIREDATE)
FROM emp;
SELECT TO_CHAR(MGR)
FROM emp;
- TO_NUMBER(S) : 문자열에서 숫자로 변경
SELECT TO_NUMBER('1')
FROM dual;
Subscribe via RSS