<함수 FUNCTION>
- 단일행 함수 : N개의 값을 읽어서 N개의 값을 돌려준다. (매 행마다 함수 실행 결과 반환해준다.)
- 그룹 함수 : N개의 값을 읽어서 1개의 결과를 돌려줌 ( 각 '그룹별'로 함수 실행결과 반환해준다.)
* 결과행의 갯수가 다르기 때문에 단일행함수와 그룹함수를 함께 사용할 수 없다.
* 함수를 기술할 수 있는 위치 : SELECT절, WHERE절, ORDER BY절, GROUP BY절, HAVING절
<문자 처리 함수>
LENGTH / LENGTHB
LENGTH(STRING): 내가 전달한 글자 수를 반환해준다.
LENGTHB(STRING) : 해당 문자의 글자수가 아닌 바이트수를 반환해준다.
=> 결과 값 NUMBER타입으로 반환된다. (숫자 값으로 전달됨)
STRING: 문자에 해당하는 컬럼 | '문자값'
가, 강, 나, ㄱ, ㅏ.... 한글 한 글자당 3바이트로 취급
A, a, 1, 2, !, ~ ... 영문, 숫자, 특수문자 한 글자당 1BYTE 로 취급한다.
SELECT LENGTH('oracle'),LENGTHB('오라클')
FROM DUAL;
INSTR
문자열로부터 특정 문자의 위치 찾아서 해당 위치값 반환
INSTR(STRING, '문자', [찾을 위치의 시작 값, [순번]]) => [생략시 기본적으로 1, 1]
=>결과 값 NUMBER타입
-> 찾을 위치의 시작 값을
1로 설정하면, 앞에서부터 탐색해서 찾음. (기본값)
-1로 시작하면. 뒤에서부터 탐색해서 찾음.
SELECT INSTR('AABAACAABBAA','B')
FROM DUAL; -- 기본적으로 앞에서부터 첫번째 B의 위치 찾음
SELECT INSTR('AABAACAABBAA','B' ,-1)
FROM DUAL; -- 뒤에서부터 첫번째 B의 위치 찾음
SUBSTR
문자열로부터 특정 문자열을 잘라내서 반환해준다.
SUBSTR(STRING, POSITION, [LENGTH])
-> 결과 값 CHARACTER타입
>STRING: 문자타입컬럼 || '문자값;
>POSITION: 문자열을 잘라낸 시작 위치값
>LENGTH : 잘라낼 문자 갯수 (생략시 끝까지 의미)
SELECT SUBSTR('HELLOWORLD',1,6) FROM DUAL;
LPAD / RPAD
문자열에 특정 문자를 왼쪽 또는 오른쪽에 붙인 결과를 받고자할때 사용한다.
LPAD | RPAD(STRING, 최종적으로 반환할 문자의 길이(N), 덧붙이고자하는 문자)
=> 결과값은 CHARACTER타입이다.
제시한 문자열에 임의의 문자를 왼쪽 또는 오른쪽에 덧붙여 최종길이 N만큼의 문자열을 반환
덧붙이고자하는 문자 생략시 기본값이 ' ' (공백)이다.
SELECT EMP_NO, LPAD(EMP_NO, 20)
FROM EMPLOYEE;
'Database' 카테고리의 다른 글
SQL Injection (0) | 2021.09.10 |
---|---|
오라클 함수 select문 실행 순서 (0) | 2021.03.08 |
오라클 연산자 우선순위 (0) | 2021.03.04 |
DML - SELECT (0) | 2021.03.03 |
사용자 계정 생성(Oracle) (0) | 2021.03.02 |