LECTURE/Oracle

02_1 함수 - 그룹함수, 문자 관련 함수, 숫자 처리 함수

heywoo 2023. 1. 14. 02:08

함수 : 컬럼 값을 읽어서 계산한 결과를 리턴한다.

단일행 함수: 컬럼에 기록된 N개의 값을 읽어서 N개의 결과를 리턴한다.

그룹함수 : 컬럼에 기록된 N개의 값을 읽어서 한 개의 결과를 리턴한다.

→SELECT 절에 단일행 함수와 그룹 함수를 함께 사용할 수 없다.

→WHERE절에서는 단일행 함수만 사용가능하다.

 

그룹함수

SUM (숫자가 기록된 컬럼명) : 합계를 구하여 리턴

AVG(숫자가 기록된 컬럼명) : 평균을 구하여 리턴

 

MAX(컬럼명) : 컬럼명에서 가장 큰 값을 리턴한다. 모든 타입을 취급함

MIN(컬럼명): 컬럼명에서 가장 작은 값을 리턴한다. 모든 타입을 취급한다.

 

COUNT(*) : NULL을 포함한 전체 행 개수를 리턴한다

COUNT( * | 컬럼명) : 행의 개수를 헤아려서 리턴한다.

COUNT(컬럼명) : NULL을 제외한 실제 값이 기록된 행 개수를 리턴한다.

COUNT([DISTINCT] 컬럼명) : 중복을 제거한 행 개수를 리턴한다.

 

문자 관련 함수

LENGTH(’오라클’) → 문자의 길이 : 3

LENGTHB(’오라클’) → 바이트로 가진 크기를 포함한 길이 :9

 

INSTR(’문자열’ | 컬럼명, ‘문자’, 찾을 위치의 시작 값. [빈도])

SELECT INSTR('AABAACAABBAA', 'B', -1, 2) FROM DUAL;

문자열에서 B를 뒤에서 부터 두 번째 시작 값 : 9

빈도는 필수 x

 

LPAD / RPAD (컬럼명, N, ‘문자열 ’)

주어진 컬럼 문자열에 임의의 문자열을 덧붙여 길이 N의 문자열로 반환

LPAD는 문자열을 왼쪽에 채우고, RPAD는 오른쪽에 채운다.

N이 컬럼 문자열보다 작은 경우 N길이만큼 잘림.

 

LTRIM / RTRIM (컬럼OR문자열 , 문자열’)

주어진 컬럼이나 문자열 왼쪽/오른쪽에서 지정한 문자 혹은 문자열을 제거한 나머지를 반환하는 함수이다.

지정된 문자가 없으면 공백을 제거하는 것이고, 지정한 문자열 중 한 문자라도 해당하면 제거한다. 해당하지 않는 문자가 나오면 제거 중단함.

TRIM

주어진 컬럼이나 문자열의 앞/뒤에 지정한 문자를 제거한다

TRIM('Z' FROM 'ZZZGREEDYZZZ') → 모든 Z 제거

TRIM(BOTH 'Z' FROM 'ZZZGREEDYZZZ') → 모든 Z 제거

TRIM(LEADING 'Z' FROM 'ZZZGREEDYZZZ') → 왼쪽 Z 제거

TRIM(TRAILING 'Z' FROM 'ZZZGREEDYZZZ') → 오른쪽 Z 제거

**왼쪽(Left)이 먼저 쓰여서 리드하고, 뒤에 쓰인 오른쪽이 따라간다

 

SUBSTR

컬럼이나 문자열에서 지정한 위치로부터 지정한 개수의 문자열을 잘라서 리턴하는 함수.

-위치이면 뒤에서부터, 지정한 개수가 없으면 지정 위치부터 끝까지 리턴

날짜 데이터에서도 사용할 수 있다.

함수 중첩 사용 가능

함수 안에서 함수를 사용할 수 있다.

RPAD(SUBSTR(EMP_NO, 1, 7), 14, '*') → 주민번호 뒷자리 *처리

SUBSTRB

바이트 단위로 추출하는 함수

영어는 같은데 한글은 2바이트라 그냥 SUBSTR 보다 2배 숫자 써야 함

잘 안 쓰이는 함수

 

LOWER / UPPER / TNITCAP : 대소문자 변경해 주는 함수

LOWER( 문자열 | 칼럼) : 소문자로 변경해주는 함수

UPPER(문자열 | 컬럼) : 대문자로 변경해주는 함수

INITCAP(문자열 | 컬럼) : 앞 글자만 대문자로 변경해주는 함수

 

CONCAT

문자열 혹은 컬럼 두 개를 입력받아 하나로 합친 후 리턴

문자열 || 문자열 과 같다

 

REPLACE

컬럼 혹은 문자열을 입력받아, 변경하고자 하는 문자열을 변경하려고 하는 문자열로 바꾼 후 리턴

REPLACE('서울시 강남구 역삼동', '역삼동', '삼성동')

⇒ ‘서울시 강남구 삼성동’

 

숫자 처리 함수

ABS(숫자 | 숫자로 된 컬럼명) : 절댓값 구하는 함수

MOD(숫자|숫자로 된 컬럼명1, 숫자|숫자로 된 컬럼명2)

두 수를 나누어서 나머지를 구하는 함수 1/2

 

ROUND(숫자|숫자로 된 컬럼명, [위치]) : 반올림

위치 2 → 소수점 셋째 자리에서 반올림, 위치 -2 → 십의 자리에서 반올림

FLOOR(숫자|숫자로 된 컬럼명) : 내림처리 → 정수값 만들기

TRUNC(숫자|숫자로 된 컬럼명, [위치]

내림처리(절삭)하는 함수

위치 지정 안 하면 FLOOR와 같다. 위치를 지정하면 ROUND처럼 처리하지만 올림 없이 절삭한다.

CEIL(숫자| 숫자로 된 컬럼명)

올림 처리 함수 → 반올림 ROUND와 달리 무조건 올림처리한다.