자바로 따지면 '메소드'와 같은 존재
전달된 값들을 읽어서 계산한 결과를 반환
- 단일행 함수 : N개의 값을 읽어서 N개가 값을 리턴
- 그룹 함수 : N개의 값을 읽어서 1개의 결과를 리턴
단일행 함수와 그룹함수는 함께 사용할 수 없음
: 결과 행의 갯수가 다르기 때문!!!
1. 단일행 함수
< 문자열과 관련된 함수>
- LENGTH(STR) : 해당 전달된 문자열의 글자 수 반환
- LENGTHB(STR) : 해당 전달된 문자열의 바이트 수 반환
결과 값은 NUMBER 타입으로 반환
※ 숫자, 영문, 특수문자 : '!', '~', 'A', '1' => 한 글자당 1Byte로 취급
한글 : 'ㄱ', 'ㅏ', '강', ........ => 한 글자당 3Byte로 취급
- INSTR(STR) : 문자열로부터 특정 문자의 위치값 반환
[ 표현법 ]
INSTR(STR, '특정문자', 찾을위치의 시작값, 순번)
결과값은 NUMBER타입으로 반환
찾을 위치의 시작값, 순번은 생략 가능
1 : 앞에서부터 찾겠다. (생략 시 기본값)
-1 : 뒤에서부터 찾겠다.
- SUBSTR
[표현법]
SUBSTR(STR, POSITION, LENGTH)
문자열로부터 특정문자열 추출 -> 반환
자바로 따지면 .subString()
결과값이 CHARACTER타입으로 반환
LENGTH는 생략
- STR : '문자열' 또는 문자 타입 컬럼
- POSITION : 시작위치값(음수 가능) POSITION부터 추출한다.
- LENGTH : 추출할 문자 갯수(생략시 끝까지)
직원들의 주민번호 8번째자리 하나만 추출하는데 그 문자가 '1'이거나 '3'일때만 뽑아내겠다.
※ 함수 중첩해서 쓰기 (SUBSTR 안에 INSTR집어 넣기) --어렵다ㅠㅠ
SUBSTR로 이메일에서 첫번째 글자부터 추출하겠다, 어디까지? 이메일에서 '@'있기 전까지!
이메일전까지 아이디만 결과값을 반환된다.
- LPAD / RPAD
(왼쪽부터) / (오른쪽부터)
[표현법]
- LPAD / RPAD(STR, 최종적으로 반환할 문자의 길이(바이트), 덧붙이고자 하는 문자)
- LTRIM / RTRIM
[표현법]
LTRIM /RTRIM (SRT, 제거시키고자 하는 문자)
: 문자열의 왼쪽 또는 오른족에서 제거시키고자 하는 문자를 찾아서
제거하고 나머지를 반환
결과값은 CHARACTER타입으로 반환
제거시키고자 하는 문자는 생략 가능
- STR : '문자열' 또는 문자 타입 컬럼
- TRIM
(BOTH(양쪽) / LEADING(앞쪽) / TRAILING(뒤쪽)) --> 생략가능
: 문자열 앞/뒤/양쪽에 있는 특정 문자를 제거한 나머지 문자열 반환
결과값은 CHARACTER 타입으로 반환
- LOWER(STR)
: 전부 다 소문자로 변경
- UPPER(STR)
: 전부 다 대문자로 변경
- INITCAP(STR)
: 각 단어 앞그자만 대문자로 변경
- CONCAT(STR1, STR2)
: 전달된 두개의 문자열을 하나로 합친 결과로 반환
결과값은 CHARACTER 타입으로 반환
- REPLACE(STR, 찾을문자, 바꿀문자)
: STR로부터 찾을 문자를 찾아서 바꿀문자로 변환 후 반환
< 숫자와 관련된 함수 >
- ABS(NUMBER)
: 절대값을 구해주는 함수
- MOD((NUMBER1, NUMBER2)
: 두수를 나눈 나머지 값을 반환
- ROUND(NUMBER, 위치)
: 반올림 처리해주는 함수
위치 생략이 가능. 기본값은 0
위치 : 소수점 아래 N번째 수에서 반올림
- CEIL(NUMBER)
: 소수점 아래의 수를 무조건 올림 처리해주는 함수
- FLOOR(NUMBER)
: 소수점 아래의 수를 무조건 버림 처리해주는 함수
CONCAT으로 근무일수를 '일'이랑 같이 붙이기
- TRUNC(NUMBER, 위치)
: 위치 지정가능한 버림 처리해주는 함수
'*SQL_Oracle*' 카테고리의 다른 글
DML < SELECT > GROUP BY , HAVING , 집합 연산자 (0) | 2021.11.06 |
---|---|
DML < SELECT> JOIN (0) | 2021.11.05 |
DML <SELECT> 함수 - 그룹 함수 (0) | 2021.11.04 |
DML < SELECT> 함수 - 단일행 함수 2 (0) | 2021.11.04 |
DML <SELECT> 기본문법 (0) | 2021.11.02 |