Drunken Lion

오라클 함수 본문

SAP/ABAP

오라클 함수

DrkLion 2007. 11. 7. 14:35

출처: http://cafe.naver.com/yorori/25

ABAP 에서는 EXEC SQL. ENDEXEC. 명령어를 통해
NATVIE SQL , OPEN SQL 이 사용가능하다고 한다.
오라클 함수역시 사용이 가능하다.
거의 대부분 ABAP 으로 구현이 가능하나, 소스 분석을 위해서는 기본적인 것은
알아 둬야 할것 같아.. 아래 내용을 퍼왔다..


산술 함수

ABS(n) : 절대값 |n|
sin() cos() tan() sinH() cosH() tanH() : radian값을 이용
ex> 30' 일 경우 sin(30* (3.14.../180));
exp(n) : 지수값 e를 밑으로 하는 e의 n승 값;
LN(n):자연 log값 밑수 e 지수 n
SQRT(n): 루트n
power(m,n): m의 n승
MOD(m.n) : m을  n 으로 나눈 나머지
floor(n): n보다 작은 정수값들중에서 최대값
ceil(n): n보다 큰 정수값들중에서 최소값
 
ex> floor(3.5)   -->  3   ,    ceil (3.5)  -->  4
       floor(-3.2) --> -4  ,     ceil (-3.5) --> -3
greatest(m,n): 두 수중에서 큰것
least(m,n);두 수중에서 작은 것
TO_NUMBER('숫자형 문자열'):문자를 숫자로 변환
round(m,n):반올림
trunc(m,n):절삭한다 즉 반올림을 허용하지 않는다.
 
ex>  Round(2.4678, 2)   -->  2.47   ,    trunc(2.4687, 2)    -->  2.46
     Round(3654.26, -2) --> 3700  ,   trunc (3654.26, -2 ) --> 3600
NVL(col명,값): col의 값이 null를 가질때 값을 가진다.
ex> 100+NULL은 NULL이 되기 때문에 이러한 문제점을 해결할 때 사용한다.
select ename,sal,comm,sal+nvl(comm,0) from emp;
           -->sal값과 comm값을 더하는데 comm값이 null값이면 0값을 취한다...

문자열 함수

 lower():소문자로 변환시켜주는 함수
upper():대문자로 변환시켜주는 함수
Initcap():단어의 첫자만 대문자로 나머지는 소문자로
 
Initcap('i LOVE you') ---->  I Love You
 

 ength():문자열의 길이
substr(문자열,위치,갯수): 해당위치에서 갯수만큼의 문자열을 추출한다.
 
substr ('KOREA', 3, 2) ---->  'RE'
-- 3번째인 R부터 2글자 출력
instr(문자열,찾을 문자열[,위치,찾을위치])
 :문자열에서 이 문자를 찾아라. return값은 찾은 위치
 

Instr("abcdabkdoerabjdlfjdg","ab") -----> 1
-- 1번째에서 시작해서 처음  ab가 나타나는 1출력
Instr("abcdabkdoerabjdlfjdg","ab",4,2) ---->  12
-- 4번째부터 시작해서 두번째 나타나는  ab 출력
 

user:현재 접속된 사용자를 보여준다.
decode(col명,비교값,취할값,비교값,취할값,....기본값)
 :col값이 비교값이면 취할값으로 대체.

 

decode(deptno,10,'총무부',20,'영업부',30,'전산부','관리부'):나머지는 관리부
-- deptno가 10이면 총무부 , 20이면 영업부, 30이면 전산부 나머지 는 관리부 출력

날짜 함수

TO_CHAR(날짜,'포맷'): 날짜를 문자열로 바꾼다.
TO_DATE(문자열,'포맷'):문자열을 날짜로 ex> TO_DATE('97-10-14',' -----')
ADD_MONTHS(날짜,n):현재 날짜에 n개월수를 더한다.
MONTHS_BETWEEN(날짜1,날짜2):두 날짜의 개월수의 차를 구한다.
LAST_DAY(날짜):그 달의 마지막 날짜를 구한다.
NEXT_DAY(날짜,'요일'):날짜로 부터 다음에 나오는 요일은 며칠인가
next_day(sysdate,'금요일')
날짜 + n : 날짜에다 n 일을 더한다.
포맷:
yy : 년도를 2자리로
yyyy : 년도를 4자리로
year : 영어 철자로 표시
mm :월을 표시(01-12)
mon :월을 표시(DEC....):약자로 나온다.
month :월을 표시(1월,2월,....혹은 ,DECEMBER)
d :일을 표시(주에 대한 일)
dd :일을 표시 (월에 대한 일)
ddd :일을 표시 (년에 대한 일)
Q : 분기를 구한다.
DAY :요일 (월요일)
DY  :요일(월)
HH & HH12 :시간을 12시간제로
HH24 :24시간제로
MI:분
SS:초
AM & PM & A.M & P.M:12시간제 일때 오전 오후를 표시
접미사로 사용하는 포맷
TH:서수로 표시 ex> 4 -> DD ->4
                              4-> DDTH -> 4TH
SP:철자로 표시 ex> 4 ->DDSP -> FOUR
SPTH & THSP  ex> 4 -> DDSPTH -> FOURTH
 근무한 년월 수 ex> column "근무년수" Format a 14;

그룹 함수

group함수
NULL값은 계산되지 않는다.
여러개의 데이타에 대한 결과 이므로 그룹함수라 한다
단일 필드와 함께 사용할 수 없다.
만약 단일 필드와 사용되면 group by절에 반드시 나와야 한다.
sum() : 합
avg() : 평균
count() : 갯수  count(*): 리턴되는 레코드의 수를 계산
ex> select deptno,sum(sapay) from sawon;  에러
 -->단위 필드이므로 따라서 마지막에 group by deptno;라고 지정해주면 사용가능
max() : 최대값
min() : 최소값
stddev : 표준편차
variance : 분산  

'SAP > ABAP' 카테고리의 다른 글

효과적인 ABAP/4 프로그램 작성기법  (0) 2007.11.08
Native SQL 사용하기  (0) 2007.11.07
유용한 SAP Standard Function 2  (0) 2007.11.07
Table Join 셈플  (0) 2007.11.02
Check 구문  (0) 2007.11.02