728x90
단일행 함수(Single-Row Function)는 테이블 데이터에 여러개(레코드)에 "각각 적용"되어 산출한다.
그룹 함수(Aggregate Function)는 여러개(레코드)를 동시에 입력받아 "한개의 결과값"을 산출한다.
- 단일행 함수의 종류
- 문자 함수
- 숫자 함수
- 날짜 함수
- 변환 함수
- 일반 함수
- INITCAP(문자열 또는 컬럼명) : 첫글자만 대문자로 출력하고 나머지는 전부 소문자로 출력하는 함수
- SELECT INITCAP('hello world') FROM dual;
- 공백이 있는 경우 단어의 시작 부분들이 대문자로 바뀐다.
- LOWER(문자열 또는 컬럼명) : 입력되는 값을 전부 소문자로 변경하여 출력하는 함수
- SELECT LOWER(id) FROM TEST;
- UPPER(문자열 또는 컬럼명) : 입력되는 값을 전부 대문자로 변경하여 출력하는 함수
- SELECT UPPER(id) FROM TEST;
- LENGTH(문자열 또는 컬럼명) : 문자열의 길이(문자 개수) 반환
- SELECT name, id, LENGTH(id) FROM TEST WHERE LENGTH(id) >= 9;
- LENGTHB(문자열 또는 컬럼명) : 문자열의 바이트수 반환
- SELECT name, id, LENGTHB(id) FROM TEST;
- CONCAT(문자열 또는 컬럼명, 문자열 또는 컬럼명) : 둘 이상의 문자열을 입력한 순서대로 합쳐서 반환해주는 함수
- SELECT CONCAT(name, no) FROM TEST;
- SUBSTR('문자열 또는 컬럼명', 시작인덱스, 추출 할 글자수) : 문자열에서 특정 길이의 문자를 추출할 때 사용하는 함수
- SELECT SUBSTR('ABCDE', 1, 3) FROM dual;
- 시작 인덱스는 1부터 시작한다.
- 시작 인덱스는 음수도 가능하며 뒤에서부터 자릿수를 계산한다.
- 추출 할 글자수가 문자열 길이보다 크면 문자열 최대길이까지 추출한다.
- 시작인덱스를 찾을 수 없을 떄는 NULL을 반환한다.
- SELECT SUBSTR('ABCDE', 1, 3) FROM dual;
- SUBSTRB() : SUBSTR() 함수와 문법은 동일하지만 추출 할 문자수가 아닌 추출 할 바이트수를 반환한다.
- UTF-8 인코딩의 경우 한글은 한글자당 3byte로 인코딩된다.
- INSTR('문자열', 찾는문자열, 시작인덱스, 몇번째 등장) : 주어진 문자열이나 컬럼에서 특정 글자의 위치를 찾아주는 함수
- SELECT INSTR('ABC*', '*', 1, 1) FROM dual;
- SELECT INSTR('ABC*', '*', -4, 2) FROM dual; -- 음수 인덱스는 음의 방향으로 검색 진행
- 시작인덱스 : 음수 가능
- 몇번째 등장 : default 1
- 없으면 0을 리턴하며 DB에서는 0의 의미가 0번째를 의미하기 보다는 검색결과 없음을 나타낼 떄 많이 쓰인다. 따라서 인덱스에 0을 안쓰고 1부터 시작하는 경우가 많다.
- LPAD('문자열', 자릿수, '채울 문자') : 지정한 길이만큼 왼쪽부터 특정문자로 채워주는 함수
- SELECT LPAD('abc', 10, '*') FROM dual;
- RPAD('문자열', 자릿수, '채울 문자') : 지정한 길이만큼 오른쪽부터 특정문자로 채워주는 함수
- SELECT RPAD('abc', 10, '*') FROM dual;
- LTRIM('문자열', '제거 할 문자') : 문자열 좌측 문자를 제거한다.
- SELECT LTRIM('AAABC', 'A') FROM dual;
- RTRIM('문자열', '제거 할 문자') : 문자열 우측 문자를 제거한다.
- SELECT RTRIM('ABCCC', 'C') FROM dual;
- REPLACE('문자열', '문자1', '문자2') : '문자열'에서 '문자1'이 있으면 '문자2'로 치환한다.
- SELECT REPLACE('ABCCC', 'C', 'D') FROM dual;
728x90