ORACLE 함수
목차
- 문자 조작 함수
- 숫자 함수
- 날짜 함수
- 변환 함수
- 집합 연산자
- 분석 함수
함수의 주요 사용처
• 데이터 계산 수행
• 개별적인 데이터 항목 수정
• 행의 그룹에 대해 결과 조작
• 출력을 위한 날짜와 숫자 형식 설정
• 열의 데이터타입 변환
함수의 종류
-단일 행 함수
-다중 행 함수
단일 행 함수
• 데이터 값을 조작합니다.
• 인수(argument)를 받고 하나의 결과를 리턴합니다.
• 리턴될 각각의 행에 적용됩니다.
• 행별로 하나의 결과를 리턴합니다.
• 데이터타입을 수정할 수 있습니다.
• 중첩(nested)될 수 있습니다.
-문자 함수는 문자 입력을 받고 문자와 숫자 값을 모두 리턴할 수 있다.
-숫자 함수는 숫자 입력을 받고 숫자를 리턴한다.
-날짜 함수는 날짜 데이터입의 값에 대해 수행한다.
숫자를 리턴하는 MONTH_BETWEEN 함수를 제외한 모든 날짜 함수는 날짜 데이터 값을 리턴한다.
-변환 함수는 어떤 데이터타입의 값을 다른 데이터타입의 값으로 변환한다.
-그 외 함수는 NVL,NVL2,LNNVL,NULLIF,COALSECE,DECODE 등이 있다.
문자 조작함수
-initcap , lower , upper , length , lengthb , concat , substr , substrb , instr , instrb , lpad , rpad , ltrim , trim , replace
문자열 조작 실전문제(실습)
https://ohj9575.tistory.com/38
숫자 함수
ROUND , TRUNC , ABS , SIGN , CEIL , FLOOR , REMAINDER , POWER , SQRT , SIN,COS,TAN , SINH , COSH ,TANH , EXP , LN , LOG , MOD
ROUND
TRUNC
날짜 함수
SYSDATE
-현재 날짜를 반환하는 함수
SYSTIMESTAMP
-현재 날짜와 시간을 반환하는 함수
-날짜 연산
날짜 타입도 연산이 된다.
변환 함수 *
TO_CHAR ,TO_NUMBER , TO_DATE
예시를 잘 기억해 놓자.
예시-
숫자를 문자로 변환
주어진 숫자로 표현할 수 없으면 모두 #로 출력
문자를 숫자로 변환하기
문자를 날짜로 변환하기
NVL
NULL 값을 실제 값으로 변환하기 위해서 NVL함수를 사용한다 (날짜 ,문자 , 숫자 사용가능)
*EXP 1 , EXP2 타입은 동일해야한다
NVL2
EXP1의 값이 NULL이 아닐 경우에는 EXP2 의 값을 반환 NULL일 경우에는 EXP3의 값을 반환
EXP1과 EXP2,EXP3의 데이터타입은 달라도 된다.
DECODE
- > IF-THEN -ELSE 구문과 유사한 방법으로 표현식을 해독
- EXP 를 해독한 후 각각의 SERCHN에 대한 비교를 하고 SERCH N 과 같으면 RESULTN 을 반환
- 기본값이 생략되면 검색값(SERCHN)이 결과 값(RESULTN)과 일치하지 않는 곳에 NULL값이 반환
CASE ~ WHEN ~THEN
-자바의 IF-ELSE 나 SWITCH -CASE 문과 같은 기능을 한다
-CASE 절 뒤에 COLUMN이나 EXP(표현식)가 있을 경우 WHEN 절에는 값이 온다
-CASE 절 뒤에 아무것도 없을 경우 WHEN 절에는 조건식이 온다
변형함수 ,조건확인 실습
https://ohj9575.tistory.com/38
집합연산자
UNION -합집합(중복X)
UNIONALL-합집합(중복O)
INTERSECT-교집합
MINUS-차집합
분석함수 -RANK ,DENSE_RANK , ROW_NUMBER
RANK - 해당 값에 대한 순위를 결정한다 (중복순위를 계산 EX 2등이 2명이면 다음은 4등)
DENSE_RANK - 해당 값에 대한 우선순위를 결정(중복순위를 계산X EX 2등이 2명이어도 다음은 3등)
ROW_NUMBER - 조건을 만족하는 모든 행 번호를 제공 ==일련번호를 생성
잘 쓰지않는 함수
CUME_DIST -최댓값 1을 기준으로 분산된 값을 제공한다.
PERCENT_RANK - 최댓값 1을 기준으로 백분율을 제공한다.
RATIO-TO_PEPORT - 해당 컬럼값의 백분율을 소수점으로 제공