티스토리 뷰

DUAL 테이블

함수나 계산식을 테이블 생성 없이 실행해보기 위한 테이블 (테스트용)

SELECT 20*30 FROM DUAL;

실행결과

 

단일 행 함수

숫자 함수

이름 의미
ABS 절대값
ROUND(컬럼or숫자, 소숫점 자리지정) 지정한 자리에서 반올림
TRUNC(컬럼or숫자, 소숫점 자리지정) 지정한 자리에서 버림
MOD 나머지 값
CEIL 올림
FLOOR 버림
POWER(숫자1, 숫자2) 숫자1의 숫자2 제곱

 

ROUND(컬럼 OR 숫자, 소숫점 자리지정) / TRUNC(컬럼 OR 숫자, 소숫점 자리지정)

  • 지정한 자리수에서 반올림 / 버림

  • 소숫점 자리지정 : 지정하지 않으면 0

    • 양수 : 소숫점 이하 자리

    • 음수 : 소숫점 이상 자리

SELECT TRUNC(125.345, -1) FROM DUAL;

SELECT ROUND(125.365, 1) FROM DUAL;

 

 

 

문자 함수

이름 의미
UPPER / LOWER 대문자 / 소문자로 변환
INITCAP 이니셜만 대문자로 변환
LENGTH / LENGTHB 문자 길이 / 바이트 수 반환
INSTR(컬럼or문자열, 찾으려는 문자[, 시작위치[, 나오는 횟수]]) 찾는 문자열이 나타난 시작위치 반환
SUBSTR / SUBSTRB(컬럼or문자열, 시작위치[, 반환할 개수]) 시작위치부터 선택 개수 / 바이트수만큼 잘라서 반환
LPAD / RPAD(컬럼or문자열, 칸 수, 남는자리에 채울 문자) 왼쪽정렬 / 오른쪽정렬
LTRIM / RTRIM(문자열, 제거할 문자열) 왼쪽에서 / 오른쪽에서 문자열 제거
TRIM('제거할 문자 하나' FROM '문자열') 양쪽에서 문자열 제거

 

INITCAP

SELECT INITCAP('hong gil dong') FROM DUAL;

 

 

INSTR(컬럼or문자열, 찾으려는 문자[, 시작위치[, 나오는 횟수]])

  • 찾으려는 문자열이 나타난 시작위치 반환

  • 시작위치

    • 양수 : 앞에서부터

    • 음수 : 뒤에서부터

SELECT INSTR('HI ORACLE', 'O') FROM DUAL;

SELECT INSTR('ORACLE WELCOME', 'O', 2, 1) FROM DUAL;

 

 

SUBSTR(컬럼or문자열, 시작위치[, 반환할 개수])

  • 시작위치 : 0, 1 모두 처음을 뜻함

    • 양수 : 앞에서부터 지정한 수만큼

    • 음수 : 뒤에서부터 지정한 수만큼

  • 반환할 개수 < 0 : NULL 반환

SELECT SUBSTR('ORACLE DATABASE', 3) FROM DUAL;

SELECT SUBSTR('ORACLE DATABASE', 3, 5) FROM DUAL;

 

 

LPAD / RPAD(컬럼or문자열, 칸 수, 남는자리에 채울 문자)

/* 빈 자리에는 '*'을 넣어서 7자리만큼 오른쪽 정렬하자. */
SELECT LPAD(ENAME, 7, '*') FROM EMP;

 

 

 

LTRIM / RTRIM(문자열, 제거할 문자열)

/* 왼쪽에서 'xyz' 제거 */
SELECT LTRIM('xyxzyyTech6 327', 'xyz') FROM DUAL;

/* 오른쪽에서 숫자 제거 */
SELECT RTRIM('xyxzyyTech6 327', '0123456789') AS Q1,
/* 오른쪽에서 공백 및 숫자 제거 */
RTRIM('xyxzyyTech6 327', ' 0123456789') AS Q2 FROM DUAL;

 

 

TRIM('제거할 문자 하나' FROM '문자열')

/* 양쪽의 x를 제거하자. */
SELECT TRIM('x' FROM 'xyxzyyTech6 327xx') FROM DUAL;

문자를 하나가 아닌 여러개 썼을 때 오류

 

최근에 올라온 글
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Total
Today
Yesterday