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;