*SQL_Oracle*

DML < SELECT > 함수 - 단일행 함수 1

깐부로부터 2021. 11. 3. 18:38

자바로 따지면 '메소드'와 같은 존재

전달된 값들을 읽어서 계산한 결과를 반환

 

- 단일행 함수 : 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