본문 바로가기
Work/DataBase

[ORACLE] SELECT 내장함수, 그룹함수, 문자열함수

그룹함수 - 합계, 평균, 최대값, 최솟값, 표준편차.. 등

COUNT - 개수, 행의 수

SELECT COUNT(*) FROM S_온마트고객기본
SELECT 성별구분, COUNT(*) FROM S_온마트고객기본 GROUP BY 성별구분
-- 남녀 고객 수

MIN, MAX - 최대,최소값

SELECT 성별구분 , MIN(최초가입일시) FROM S_온마트고객기본 GROUP BY 성별구분
--남녀 고객중 첫 가입날짜

SUM - 합계

SELECT 상품코드, SUM(판매금액) FROM S_온마트고객월실적 GROUP BY 상품코드
-- 상품별 총 판매금액

AVG - 평균

SELECT 상품코드, AVG(판매금액) FROM S_온마트고객월실적 GROUP BY 상품코드
-- 상품별 평균 판매금액 

STDDEV - 표준편차

SELECT ROUND(STDDEV(판매금액),3)  FROM S_온마트고객월실적
-- 판매금액의 표준편차, 3째 자리에서 반올림

 

수치함수

ABS - 절대값

SELECT ABS(-0.123) FROM DUAL

ROUND - 반올림

SELECT ROUND(3.523,0) FROM DUAL --출력값 : 4

CEIL - 올림

SELECT CEIL(3.123) FROM DUAL --결과값 : 4

FLOOR - 버림

SELECT FLOOR(3.123) FROM DUAL

MOD - 나눗셈의 나머지

SELECT MOD(10,3) FROM DUAL -- 결과는 1

 

문자형 함수

SUBSTR(s1,P,L) - s1 P번째 위치부터 L자릿수만큼 반환

SELECT SUBSTR('HELLOJAVA',6,3) FROM DUAL --AVA 반환

TRIM(s1) - 문자열 좌우의 공백이나 특정문자 제거

SELECT '#'||TRIM(' HELLOJAVA ')||'#' FROM DUAL

REPLACE(s1,s_str,r_str) - s1에서 s_str을 찾아 r_str로 교체

SELECT REPLACE('HELLOJAVA','JAVA','ORACLE') FROM DUAL

CONCAT(s1,s2) or  ( || ) - 두 문자열을 연결

SELECT CONCAT('HELLO','JAVA') FROM DUAL
SELECT 'HELLO' ||'JAVA'  FROM DUAL

LOWER(s1) , UPPER(s1) - 대/소문자로 변환

SELECT LOWER('HELLOJAVA') FROM DUAL

SELECT UPPER(‘hello java') FROM DUAL

 

LENGTH(s1) - 문자열의길이 반환

SELECT LENGTH('HELLOJAVA') FROM DUAL

DISTINCT(s1) , group by - 항목 값의 중복 제거

SELECT DISTINCT CUST_ID FROM DUAL

INITCAP(s1) - 주어진 문자열의 첫 번째 문자를 대문자로 변환

SELECT INITCAP('HELLOJAVA') FROM DUAL

INSTR(str, char, m, n) - 문자열이 포함되어 있는지를 조사하여 문자열의 위치를 반환 한다. 없으면 0반환

char1 : 지정문자, str1 : 검색문자, m:시작위치, n:검색순위

-- 왼쪽에서 세 번째부터 시작을 해서 검색된 OR의 위치를 반환 한다.

SELECT INSTR('CORPORATE FLOOR','OR', 3) IDX FROM DUAL

5
-- 왼쪽에서 세 번째부터 시작을 해서 비교를 하여 OR이 두 번째 검색되는 지점의 위치를 반환 한다.

SELECT INSTR('CORPORATE FLOOR','OR', 3, 2) IDX FROM DUAL
14