
3️⃣ 함수
함수 정의
- input value와 output value의 관계를 정의한 객체
함수 기능
- 데이터의 계산을 수행
- 개별 데이터의 항목을 수정
함수의 종류(입력값의 수에 따라)
- 단일행 함수와 복수행 함수로 구분
- 단일행 함수: input과 output의 관계가 1:1
- 복수행 함수: 여러 건의 데이터를 동시에 입력 받아서 하나의 요약값을 리턴

입/출력값의 타입에 따른 함수 분류
- 문자형 함수
SQL Server)
- SUBSTR -> SUBSTRING
- LENGTH -> LEN
- INSTR -> CHARINDEX
- 숫자형 함수
숫자를 입력하면 숫자 값을 반환
- 단일행 함수 형태의 숫자 함수
- ORACLE과 SQL Server 함수 거의 동일
- 날짜형 함수
- 날짜 연산과 관련된 함수
- ORACLE과 SQL Server 함수 거의 다름
SQL Server)
- SYSDATE -> GETDATE
- ADD_MONTHS -> DATEADD(월 뿐만 아니라 모든 단위 날짜 연산 가능)
- MONTHS_BETWEEN -> DATEDIFF(두 날짜 사이의 년, 월, 일 추출)
- 변환함수
- 값의 데이터 타입을 변환
- 문자->숫자, 숫자->문자, 날짜->문자
SQL Server)
- TO_NUMBER, TO_DATE, TO_CHAR -> CONVERT(포맷 전달 시)
- 단순 변환일 경우 주로 CAST 사용
- 그룹함수
- 다중행 함수
SQL Server)
- VARIANCE -> VAR
- STDDEV -> STDEV
- 일반함수
-
기타 함수(널 치환 함수 등)
-
DECODE 사용 예제1
부서번호(DEPTNO)가 10번이면 인사부, 20번이면 재무부, 나머지는 널 리턴
-
DECODE 사용 예제2
(10이면서 (CLERK이면 A 아니면 B), 10이 아니면 C)
-
NVL, NCL2 사용예제
NVL2의 경우 NVL이랑 다르게 COMM의 값이 널이 아닐 때도 치환값 정의가능
- NVL2의 경우 COMM이 널이 아니면 10% 인상값, 널이면 500 리턴
-
CASE문 사용 예제1
CASE문(중요): 조건문
- CASE문을 사용하여 여러 조건(대소비교 가능)에 대한 치환 및 연산 가능!