함수
하나의 큰 프로그램에서 반복적으로 사용되는 부분들을 분리하여작성해 놓은 작은 서브 프로그램 호출하며 값을 전달하면 결과를 리턴하는 방식으로 사용
| 단일 행 함수 | 그룹 함수 |
| 각 행마다 반복적으로 적용되어 입력 받은 행의 개수만큼 결과 반환 | 특정 행들의 집합으로그룹이 형성되어 적용됨그룹 당1개의 결과 반환 |
문자처리함수
LENGTH
주어진 컬럼 값/문자열의 길이(문자 개수) 반환
SELECT EMP_NAME, LENGTH(EMP_NAME), EMAIL, LENGTH(EMAIL) FROM EMPLOYEE;
| 작성법 | 리턴 값 타입 |
| LENGTH (CHAR | STRING) | NUMBER |
INSTR
지정한 위치부터 지정한 숫자 번째로 나타나는 문자의 시작 위치 반환
| 작성법 | 리턴 값 타입 |
| INSTR(STRING, STR, [POSITION,[OCCURRENCE]]) | NUMBER |
LPAD / RPAD
주어진 컬럼, 문자열에 임의의 문자열을 왼쪽 / 오른쪽에 덧붙여길이 N의 문자열 반환
SELECT EMP_NAME, LTRIM(PHONE, '010'), RTRIM(EMAIL, '@kh.or.kr') FROM EMPLOYEE;
| 작성법 | 리턴 값 타입 |
| LPAD(STRING, N, [STR]) / RPAD(STRING, N, [STR]) | CHARACTER |
LTRIM / RTRIM
주어진 컬럼, 문자열의 왼쪽/오른쪽에서 지정한 STR에 포함된모든 문자를 제거한 나머지 반환
SELECT EMP_NAME, LTRIM(PHONE, '010'), RTRIM(EMAIL, '@kh.or.kr') FROM EMPLOYEE;
| 작성법 | 리턴 값 타입 |
| LTRIM(STRING, STR) / RTRIM(STRING, STR) | CHARACTER |
TRIM
주어진 컬럼, 문자열의 앞/뒤/양쪽에 있는 지정한 문자를 제거한나머지 반환
* STRING : 문자 타입 컬럼 또는 문자열
* CHAR : 제거하려는 문자(열), 생략 시 공백문자
* LEADING : TRIM할 CHAR의 위치 지정, 앞(LEADING) / 뒤(TRAILING) / 양쪽(BOTH) 지정 가능(기본 값 양쪽)
| 작성법 | 리턴 값 타입 |
| TRIM( STRING ) TRIM( CHAR FROM STRING) TRIM( LEADING | TRAILING | BOTH [CHAR] FROM STRING) |
CHARACTER |
SUBSTR
컬럼이나 문자열에서 지정한 위치부터 지정한 개수의 문자열을잘라내어 반환
* STRING : 문자 타입 컬럼 또는 문자열
* POSITION : 문자열을 잘라낼 위치로 양수면 시작방향에서 지정한 수만큼,
음수면 끝 방향에서 지정한 수만큼의 위치 의미
* LENGTH : 반환할 문자 개수(생략 시 문자열의 끝까지 의미, 음수면 NULL 리턴)
| 작성법 | 리턴 값 타입 |
| SUBSTR( STRING, POSITION, [LENGTH] ) | CHARACTER |
LOWER / UPPER / INITCAP
컬럼의 문자 혹은 문자열을 소문자/대문자/첫 글자만 대문자로변환하여 반환
| 작성법 | 리턴 값 타입 |
| LOWER(STRING) / UPPER(STRING) / INITCAP(STRING) | CHARACTER |
CONCAT
컬럼의 문자 혹은 문자열을 두 개 전달 받아 하나로 합친 후 반환
| 작성법 | 리턴 값 타입 |
| CONCAT(STRING, STRING) | CHARACTER |
예시
| 수행문장 | 결과 |
| SELECT CONCAT(‘가나다라’, ‘ABCD’) FROM DUAL |
가나다라ABCD |
| SELECT ‘가나다라’ || ‘ABCD’ FROM DUAL; | 가나다라ABCD |
REPLACE
컬럼의 문자 혹은 문자열에서 특정 문자(열)을 지정한 문자(열)로바꾼 후 반환
* STRING : 문자 타입 컬럼 또는 문자열
* STR1 : 변경하려고 하는 문자 혹은 문자열
* STR2 : 변경하고자 하는 문자 혹은 문자열
| 작성법 | 리턴 값 타입 |
| REPLACE(STRING, STR1, STR2) | CHARACTER |
숫자처리함수
FLOOR
인자로 전달 받은 숫자 혹은 컬럼에서 소수점 자리의 수를 버림 후 반환
| 작성법 | 리턴 값 타입 |
| FLOOR(NUMBER) | NUMBER |
날짜처리함수
| 구분 | 입력 값 타입 | 리턴 값 타입 | 설명 |
| SYSDATE | DATE | 시스템에 저장된 현재 날짜 반환 | |
| MONTHS_BETWEEN | DATE | NUMBER | 두 날짜를 전달받아 몇 개월 차이인지계산하여 반환 |
| ADD_MONTHS | DATE | DATE | 특정 날짜에 개월 수를 더하여 반환 |
| NEXT_DAY | 특정 날짜에서 인자로 받은 요일이 최초로다가오는 날짜 반환 | ||
| LAST_DAY | 헤딩 달의 마지막 날짜 반환 | ||
| EXTRACT | 년, 월, 일 정보를 추출하여 반환 |
SYSDATE
시스템에 저장되어 있는 현재 날짜 반환
| ,작성법 | 리턴 값 타입 |
| SYSDATE | DATE |
MONTS_BETWEEN
인자로 날짜 두 개를 전달받아 개월 수 차이를 숫자 데이터형으로 반환
| 작성법 | 리턴 값 타입 |
| MONTHS_BETWEEN(DATE1, DATE2) | NUMBER |
ADD_MONTHS
인자로 전달받은 날짜에 인자로 받은 숫자만큼 개월 수를 더하여특정 날짜 반환
| 작성법 | 리턴 값 타입 |
| ADD_MONTHS(DATE, NUMBER | DATE |
EXTRACT
년, 월, 일 정보 추출하여 반환
형 변환 함수
| 구분 | 입력 값 타입 | 리턴값 타입 | 설명 |
| TO_CHAR | DATE NUMBER |
CHARATER | 날짜형 혹은 숫자형을 문자형을로 변환 |
| TO_DATE | CHARACTER NUMBER | DATE | 문자형 혹은 숫자형을 날짜형으로 변환 |
| TO_NUMBER | CHARATER | NUMBER | 문자형을 숫자형으로 변환 |
NULL처리 함수
NVL
NULL로 되어 있는 컬럼의 값을 인자로 지정한 숫자 혹은 문자로 변경하여 반환
선택함수
DECODE
비교하고자 하는 값 또는 컬럼이 조건식과 같으면 결과 값 반
DECODE(표현식, 조건1, 결과1, 조건2, 결과2, …, DEFAULT
CASE
비교하고자 하는 값 또는 컬럼이 조건식과 같으면 결과 값 반환(조건은범위 값 가능)
CASE WHEN 조건1 THEN 결과1
WHEN 조건2 THEN 결과2
WHEN 조건3 THEN 결과3
… ELSE 결과N
END
그룹 함수
SUM
해당 컬럼 값들의 총합 반환
AVG
해당 컬럼 값들의 평균 반환
MAX / MIN
그룹의 최대값과 최소값 반환
COUNT
테이블 조건을 만족하는 행의 개수 반환
'SQL' 카테고리의 다른 글
| SQL (7) OBJECT VIEW, OBJECT SEQUENCE, PL/SQL (1) | 2023.10.11 |
|---|---|
| SQL (5) DDL (2) | 2023.10.05 |
| SQL (4) SUBQUERY (2) | 2023.10.04 |
| SQL(3) GROUP BY & HAVING & JOIN (0) | 2023.09.27 |
| SQL(1) 연산 (0) | 2023.09.26 |