이 블로그 검색

2010년 10월 12일 화요일

오라클 함수

단일행 함수

 - 
문자형 함수
 UPPER : 
모든 문자를 대문자로 전환 
 LOWER : 
모든 문자를 소문자로 전환 
 INITCAP : 
문자를 단어별로 앞머리는 대문자 나머지는 소문자로 전환 
 CONCAT : 
 문자열을 합성. ||연산자와 같은 용도로 사용
 SUBSTR : 
특정문자열의 부분을 선택 
 LENGTH : 
문자열의 길이를 구함 
 LPAD : 
왼쪽 문자 자리를 채움 
 RPAD : 
오른쪽 문자 자리를 채움 
 LTRIM : 
왼쪽 문자를 지움 
 RTRIM : 
오른쪽 문자를 지움 
 TRANSLATE : 
특정 문자열을 대체 
 REPLACE : 
특정 문자열을 대신 

 UPPER(
문자값) : UPPER('Oracle Server')
 → ORACLE SERVER 
 LOWER(
문자값) :  LOWER('Oracle Server')
 → oracle server 
 INITCAP(
문자값) :  INITCAP('Oracle Server')
 → Oracle Server 
 CONCAT(
문자값1,  문자값2) :  CONCAT('Oracle', ' Server')
 → Oracle Server 
 SUBSTR(
문자값,  a,  b)
 a 
선택할 문자열의 시작위치.
 
음수면 끝에서부터 시작
 b 
선택할 문자열의 개수.
 
 인자는 생략할  있으며,  
 
생략할 경우 문자열의 끝까지 선택 
 :  SUBSTR('
강남구 역삼동‘,5,2)
 → 
역삼 
 LENGTH(
문자값1, a, 문자값2) : LENGTH(‘홍길동’)
 → 3 
 LPAD(
문자값1, a, 문자값2)
 RPAD(
문자값1, a, 문자값2)
 a : 
전체 채울 자리수
 
문자값2 : 채울 문자 
 
생략할  있으며생략되면 
 
공백값임 
 : LPAD(‘
홍길동’,10 ‘*’)
 → ****
홍길동 
 LTRIM(
문자값1, 문자값2)
 RTRIM(
문자값1, 문자값2)
 
문자값1에서 왼쪽(오른쪽)에서부터
 
더이상 문자값2 만나지 않을 때까지 지움
 : LTRIM('XXAXBA','X')
 → AXBA 
 TRANSLATE(
문자값, a, b)
 a 
대체하고 싶은 문자(from)
 b 
대체할 결과의 문자(to) 
 : TRANSLATE('AABBA','B','C')
 → AACCA 
 REPLACE (
문자값, a, b) 
 a 
바꾸고 싶은 문자(from)
 b 
바꿀 결과의 문자(to) 
 : REPLACE ('JACK and JUE','J','BL') 
 → BLACK and BLUE 

 - 
숫자형 함수
 ROUND : 
숫자를 반올림 
 TRUNC : 
숫자를 절사 
 MOD : 
나누기 연산에서 나머지 구함 
 POWER : 
거듭제곱 
 SQRT : 
제곱근 
 SIGN : 
양수인지 음수인지 0인지를 구벌함 
 CHR : ASCII 
값에 해당하는 문자를 구함 

 ROUND(
숫자값, a), TRUNC(숫자값, a)
 a 
숫자값을 반올림(버림)하여 a자리까지 
 
돌려줌.a 양수이면 소수이하자리를
 
음수이면 정수 부분 자리임
 
생략할  있으며생략하면 0
 : ROUND(35.735,2)→35.74 
 MOD(
숫자값, a )
 a 
숫자값을 나누기   있음
 : MOD(7,2)→1 
 POWER(
숫자값1, 숫자값2) : POWER(3,2)→9 
 SQRT (
숫자값) : SQRT(25)→5 
 SIGN(
숫자값) : SIGN(-15)→-1 
 CHR(
숫자값) : CHR(65)→A 

 - 
날짜형 함수
 SYSDATE : 
현재 시스템의 날짜  시간을 구함 
 LAST_DAY : 
지정한 날짜의 해당 월의 마지막 날짜를 구함 
 MONTHS_BETWEEN : 
 날짜 사이의 개월 수를 구함 
 ADD_MONTHS : 
지정한 날짜로부터  개월 후의 날짜를 구함 
 ROUND : 
날짜에 대한 반올림 
 TRUNC : 
날짜에 대한 버림 

 SYSDATE : SYSDATE → 10-MAY-99 
 LAST_DAY(
날짜값) : LAST_DAY('17-FEB-98') → 28-FEB-98 
 MONTHS_BETWEEN(
날짜값1, 날짜값2) : MONTHS_BETWEEN('26-APR-97','22-JUL-95') → 21.1290323
 ADD_MONTHS(
날짜값숫자값) : ADD_MONTHS('22-JUL-95',21) → 22-APR-97 
 ROUND(
날짜값자리수) : 현재 날짜가 1999 5 10일이라고 가정하자.
 ROUND(SYSDATE,'MONTH') → 01-MAY-99
 TRUNC(
날짜값자리수) : 현재 날짜가 1999 5 10일이라고 가정하자.
 TRUNC(SYSDATE,'YEAR') → 01-JAN-99

 - 
날짜에 대한 산술연산
 
날짜 + 숫자 : 날짜 특정한 날로부터 몇일 후의 날짜 계산 
 
날짜 - 숫자 : 날짜 특정한 날로부터 몇일 전의 날짜 계산 
 
날짜 - 날짜 : 숫자  날짜 사이의 차이를 숫자로 계산 

 - 
변환형 함수
 TO_CHAR : 
숫자나 날짜를 문자열로 변환 
 TO_NUMBER : 
문자를 숫자로 변환 
 TO_DATE : 
문자를 날짜로 변환 

 - TO_CHAR
에서 숫자를 문자로 변환시에 형식에 사용되는 요소
 9 : 
일반적인 숫자를 나타냄 
 0 : 
앞의 빈자리를 0으로 채움 
 $ : dollar
 표시함 
 L : 
지역 통화 단위(ex ) 
 . : 
소숫점을 표시함 
 , : 
천단위를 표시함 
 - TO_CHAR
에서 날짜를 문자로 변환시에 형식에 사용되는 요소
 SCC : 
세기를 표시 S 기원전(BC) 
 YEAR : 
연도를 알파벳으로 spelling 
 YYYY : 4
자리 연도로 표시 
 YY : 
끝의 2자리 연도로 표시 
 MONTH : 
월을 알파벳으로 spelling 
 MON : 
월의 알파벳 약어 
 MM : 
월을 2자리 숫자로 표시 
 DAY : 
일에 해당하는 요일 
 DY : 
일에 해당하는 요일의 약어 
 DDD,DD,D : 
연도,, 중의 날짜를 숫자로 표시 
 HH , HH24 : (1-12) , (0-23)
중의 시간을 표시 
 MI : 
분을 표시 
 SS : 
초를 표시 
 AM(A.M.),PM(P.M.) : 
오전인지 오후인지를 표시 

 TO_CHAR(
문자값,‘형식’)
 
숫자를 문자로 변환 : TO_CHAR(350000,'$999, 999')→ $350,000
 
숫자를 날짜로 변환 : TO_CHAR(SYSDATE,'YY/MM/DD')→ 95/05/25 
 TO_DATE(
문자값, ‘형식’) : TO_DATE('10 SEPTEMBER 1992','DD MONTH YYYY')→10-SEP-92 
 TO_NUMBER(
문자값) : TO_NUMBER('1234')→ 1234 

 - DECODE 
함수
 DECODE 
함수는 값을 비교하여 해당하는 값을 돌려주는 함수
 > DECODE (
형식,비교값1,결과치1,비교값2,결과치2,...기본치 )
 
형식 : 컬럼이나  
 
비교값1 : 형식이 비교값1 맞는지를 비교 
 
결과값1 : 형식이 비교값1 맞을  갖는  
 
기본치 : 형식이 비교값1,2,... 맞지 않을  가지는 
 
생략될  있으며생략되면 NULL이다

 SQL> SELECT name,title,DECODE(SUBSTR(title,-2,2),
 2 '
부장',salary*1.1,
 3 '
과장',salary*1.07,
 4 '
사원',salary*1.05,
 5 salary) 
이번달급여
 6 FROM s_emp
 7 ORDER BY 3 DESC ;

다중행 함수

 - 
그룹함수
 COUNT( a ) : a
 행의 개수를 구함 
 AVG( a ) : a
 평균을 구함 
 SUM( a ) : a
 합계를 구함 
 MIN( a ) : a
 최소값을 구함 
 MAX( a ) : a
 최대값을 구함 
 STDDEV( a ) : a
 표준 편차를 구함 
 VARIANCE( a ) : a
 분산을 구함 

 COUNT(*)
 제외한 모든 그룹함수는 NULL값을 고려하지 않습니다
 
중복값을 제거하고 싶은 경우는 a 앞에 DISTINCT 기술합니다
 MAX , MIN , COUNT
 제외한 그룹함수는 숫자타입의 데이터에만 가능합니다

댓글 없음:

댓글 쓰기