9. 함수

- 벤더에서 제공하는 내장 함수 / 사용자가 정의하는 함수 

- 단일행 함수 / 다중행 함수


1) 단일행 함수

- 함수의 입력 값이 단일행 값이 입력되는 함수

- 내장형 함수 : 형변환 함수, 문자열 및 숫자형 함수, 날짜형 함수가 있음. SELECT, WHERE, ORDER BY 절에서 사용 가능


(1) DUAL 테이블

- Oracle 데이터베이스에 의해 자동으로 생성되는 테이블. 임시로 사용 할 수 있는 테이블로 모든 사용자가 사용 가능

   => 일종의 DUMMY테이블

- 사용자 테이블이 필요 없는 SQL문장인 경우에 필수적으로 FROM 절에 DUAL 테이블 지정

- SQL SERVER 일 경우 사용자 칼럼 사용할 때는 FROM절이 필수이나, 그렇지 않은 경우는 사용하지 않음


(2) 내장형 함수의 종류

* 형변환 함수 (TO_NUMBER, TO_CHAR( ,[FORMAT]), TO_DATE( , FORMAT)

- ORACLE

TO_NUMBER(문자열)

 문자열을 숫자로 변환 

TO_CHAR(숫자 혹은 날짜, [FORMAT]) 

 숫자 혹은 날짜를 지정된 FORMAT형태의 문자로 변환 

TO_DATE(문자열, FORMAT) 

 문자열을 지정된 FORMAT의 날짜형으로 변환 


- SQL SERVER

CAST( EX AS TARGET )

 EX를 TARGET 데이터 유형으로 변환

CONVERT ( TARGET, EX)

 EX를 TARGET 데이터 유형으로 변환


* 문자형 함수

 ASCII (문자)

 문자 혹은 숫자를 ASCII 코드 값으로 변환 A(65) 

CHAR (ASCII코드값) 

 ASCII 코드 값을 문자로 변환 

SUBSTR (문자열, m, n) 

 문자열에서 m번쨰 위치부터 n개를 자름 

 CONCAT (문자열1, 문자열2)

 문자열 1번과 문자열 2번 결합 / Oracle 은 || , MS-SQL은 + 사용 가능

 LOWER

 영문자를 소문자로 변환 

 UPPER

 영문자를 대문자로 변환 

 LENGTH(문자열) / LEN(문자열)

 공백을 포함한 문자열의 길이 

 LTRIM(문자열, 지정문자)

 왼쪽에 지정된 문자를 삭제. 지정된 문자 생략시 공백 삭제 

 RTRIM(문자열, 지정문자)

 오른쪽에 지정된 문자를 삭제. 지정된 문자 생략시 공백 삭제 

 TRIM(문자열, 지정문자)

 양쪽에 지정된 문자를 삭제. 지정된 문자 생략시 공백 삭제


* 날짜형 함수

SYSDATE 

 오늘 날짜를 날짜 타입으로 알려줌 

 EXTRACT('YEAR'|'MONTH|'DAY' FROM D)

 날짜에서 년, 월, 일 알고싶은 것을 조회 가능


* 숫자형 함수

ABS(숫자)

 절대값 반환 

 SIGN(숫자)

 양수, 음수, 0 구별 

 MOD(숫자1, 숫자2)

 숫자1을 숫자2로 나누어 나머지 계산. % 사용 가능 

 CEIL/CEILING(숫자)

 숫자보다 크거나 같은 최소의 정수 반환 

 FLOOR(숫자)

 숫자보다 작거나 같은 최대의 정수 반환 

 SIN(). COS(), TAN()

 숫자의 삼각함수 값 반환

 EXP(), POWER(), SQRT()

 숫자의 지수, 거듭제곱, 제곱근 값 반환 

 LOG(), LN()

 숫자의 자연로그 값 반환 

 ROUND(숫자, m)

 소수점 m자리에서 반올림 (m 기본값 0)

 TRUNC(숫자, m)

 소수점 m자리에서 절삭 (m 기본값 0) 


* NULL관련 함수

NVL (표현식1, 표현식2)

ISNULL (표현식1, 표현식2)

 - NULL이면 다른 값으로 바꿈

 - 표현식1 결과가 NULL이면 표현식 2값 출력 (표현식간 데이터타입 일치)

NVL2 (표현식1, 표현식2, 표현식2)

 - NVL 함수와 DECODE를 합침

 - 표현식1이 NULL이 아니면 표현식2, NULL이면 표현식3 리턴

NULLIF (표현식1, 표현식2)

 - 두 개의 값이 값으면 NULL, 다르면 첫번째 값 반환

 -표현식1 = 표현식2 -> NULL리턴, 표현식1 != 표현식2 -> 표현식1 리턴

COALESCE (표현식1, 표현식2 ...)

 - 임의의 개수 표현식에서 NULL이 아닌 최초의 표현식을 나타냄 

 - COALESCE(mrg, 1) -> mgr이 NULL이 아니면 1 반환 

 - 모든 표현식이 NULL이라면 NULL 리턴


2) 다중행 함수

- 함수의 입력 값이 다중행 값이 입력되는 함수

- 여러 행들의 그룹이 모여 그룹당 단 하나의 결과를 돌려줌


(1) 집계함수


+ Recent posts