현 포스팅은 세세하게 함수에 대해 알아보기 보다는 간단 요약해 참고하기 위한 포스팅이다.
어떤 입력값을 받아 정해진 루틴으로 작업을 하고 결과를 만들어 출력하는 것을 함수라 한다.
Oracle 함수의 여러 종류 중 문자 함수에 해당하는 UPPER, LOWER, SUBSTR, TRIM, LPAD 등을 살펴보자.
UPPER 함수
대문자로 변환해주는 함수이다.
SELECT UPPER(문자) FROM 테이블;
UPPER 함수 예제
--"HELLO"
SELECT UPPER('hello') FROM DUAL;
LOWER 함수
소문자로 변환해주는 함수이다.
LOWER(문자)
LOWER 함수 예제
--"hello"
SELECT LOWER('HELLO') FROM DUAL;
INITCAP 함수
이니셜만 대문자로 변환하는 함수이다.
INITCAP(문자)
INITCAP 함수 예제
--"Hello"
SELECT INITCAP('hello') FROM DUAL;
LENGTH 함수
문자 길이를 구하는 함수이다.
LENGTH(문자)
LENGTH 함수 예제
--5
SELECT LENGTH('HELLO') FROM DUAL;
SUBSTR 함수 / SUBSTRB 함수
문자열 일부만 추출하는 함수
SUBSTR : 대상 문자열이나 컬럼의 자료에서 시작 위치부터 선택 개수만큼의 문자 추출
SUBSTRB : 명시된 개수만큼의 문자가 아닌 바이트 수를 잘라냄
SUBSTR(문자, 자릿수)
SUBSTRB(문자, 자릿수)
SUBSTR 함수 / SUBSTRB 함수 예제
--"ELLO"
SELECT SUBSTR('HELLO', 2);
--"ELL"
SELECT SUBSTR('HELLO', 2, 3);
--"녕하세요"
SELECT SUBSTRB('안녕하세요', 4);
INSTR 함수
특정 문자의 위치를 구하는 함수.
찾는 문자가 없으면 0 을 반환하며 왼쪽에서 오른쪽으로 스캔함.
시작지점에 음수를 쓰면 오른쪽에서 왼쪽으로 스캔함.
INSTR(문자열, 찾고싶은 문자, 시작위치, 몇번째 인덱스)
INSTR 함수 예제
--'HELLO WORLD'에서 'DE'를 찾아라
--return 0
SELECT INSTR('HELLO WORLD', 'DE') FROM DUAL;
--'HELLO WORLD'에서 'LL'을 찾아라
--return 3
SELECT INSTR('HELLO WORLD', 'LL') FROM DUAL;
--HELLO WORLD'에서 4번째 인덱스부터 찾기 시작해서 'L'을 찾아라
--return 4
SELECT INSTR('HELLO WORLD', 'L', 4) FROM DUAL;
--HELLO WORLD'에서 4번째 인덱스부터 찾기시작해서 2번째로 나오는 'L'을 찾아라
--return 10
SELECT INSTR('HELLO WORLD', 'L', 4, 2) FROM DUAL;
LPAD 함수 / RPAD 함수
빈 공간을 특정 기호로 채워주는 함수이다.
LPAD : 오른쪽 정렬 후 왼쪽의 빈 공간에 특정 문자를 채움
RPAD : 왼쪽 정렬 후 오른쪽의 빈 공간에 특정 문자를 채움
채울 문자를 입력하지 않으면 공백이 들어간다.
LPAD(문자, 총 문자길이, 채울 문자)
RPAD(문자, 총 문자길이, 채울 문자)
LPAD 함수 / RPAD 함수 예제
--"####ORACLE"
SELECT LPAD('ORACLE', 10, '#') FROM DUAL;
--"ORACLE####"
SELECT RPAD('ORACLE', 10, '#') FROM DUAL;
--"ORACLE "
SELECT RPAD('ORACLE', 10) FROM DUAL;
TRIM 함수 / LTRIM 함수 / RTRIM 함수
공백 문자를 제거하는 함수이다.
TRIM : 문자열 양 옆의 공백 및 문자를 제거
LTRIM : 문자열 왼쪽의 공백 및 문자를 제거
RTRIM : 문자열 오른쪽의 공백 및 문자를 제거
제거할 문자를 입력하지 않으면 공백을 제거한다.
TRIM(제거할 문자 FROM 문자열)
TRIM 함수 / LTRIM 함수 / RTRIM 함수 예제
--"HELLO"
SELECT TRIM(' HELLO ');
--"HELLO"
SELECT TRIM('a' FROM 'aaHELLOaaaa');
--"HELLO "
SELECT LTRIM(' HELLO ');
--"HELLOaaaa"
SELECT LTRIM('a' FROM 'aaHELLOaaaa');
--" HELLO"
SELECT RTRIM(' HELLO ');
--"aaHELLO"
SELECT RTRIM('a' FROM 'aaHELLOaaaa');
'Coding Story > DATABASE' 카테고리의 다른 글
[ Oracle ] 특정 값 우선 정렬하기 ORDER BY DECODE/CASE (0) | 2021.02.18 |
---|---|
[ Oracle ] 오라클 Sql UNION과 UNION ALL? (2) | 2021.01.06 |
[ Oracle ] 오라클 숫자 함수 ABS, FLOOR, ROUND, TRUNC 등 (0) | 2020.12.16 |
[ Oracle ] 오라클 INSERT, UPDATE, DELETE 문법 (0) | 2020.12.16 |
[ Database ] SQLD DB 계층형 질의 (4) | 2020.10.29 |