본문 바로가기

SQL

SQL(2) 함수

함수

하나의 큰 프로그램에서 반복적으로 사용되는 부분들을 분리하여작성해 놓은 작은 서브 프로그램 호출하며 값을 전달하면 결과를 리턴하는 방식으로 사용

단일 행 함수 그룹 함수
각 행마다 반복적으로 적용되어 입력 받은 행의 개수만큼 결과 반환 특정 행들의 집합으로그룹이 형성되어 적용됨그룹 당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