IT/오라클

[오라클] 오라클 함수

미르오키드 2013. 11. 5. 16:48
반응형

구분 함수명 사용빈도 설명 예제 유사처리
문자함수 CANCAT      낮음 첫 번째 문자와 두 번째 문자를 연결                    select CONCAT('val1',  ' val2') from dual;
select CONCAT('val1',  null) from dual;
select 'val1' || 'val2' from dual;
select 'val1' || null from dual;
문자함수 COALESCE    낮음 인자순서대로 값을 확인하여 null 이 아닌 첫번째 값을 출력 select coalesce( 'aa', 'bb', 'cc','dd' ) from dual;
select coalesce( null, 'bb', 'cc','dd' ) from dual;
select coalesce( null, null, 'cc','dd' ) from dual;
select coalesce( null, null, null,'dd' ) from dual;
 
문자함수 INITCAP    낮음 첫 글자는 대문자,나머지는 소문자로                    select INITCAP( 'woo seo hyun')  from dual;  
문자함수 INSTR      낮음 문자열 내의 특정 스트림의 위치                        select INSTR('대상문자열abcdef 1234', 's') from dual;
select INSTR('대상문자열abcdef 1234', '대') from dual;
select INSTR('대상문자열abcdef 1234', '대상문자열') from dual;
select INSTR('대상문자열abcdef 1234', 'abc') from dual;
 
문자함수 LENGTH      높음 문자의 길이를 리턴할 때                              select LENGTH('문자열 abc 123') from dual;  
문자함수 LENGTHB      문자열의 실제 길이(byte)를 반환할 때                        select LENGTHB('문자열 abc 123') from dual;  
문자함수 LOWER      높음 모든 문자를 소문자로                                  select LOWER('AaaBbbCC') from dual;  
문자함수 LPAD        보통 문자열을 제외한 공간에 지정한 문자열로 대체(왼쪽)    select LPAD('10',4,'20')||'-'||LPAD('3',2,'0')||'-'||LPAD('12',2,'0') from dual;  
문자함수 LTRIM      보통 문자열 왼쪽 공백 제거      select LTRIM('  a a a   ') from dual;  
문자함수 NULLIF      낮음 두인자의 값이 같으면 NULL,다르면 첫번째인자 값을 리턴 select NULLIF('a','a') from dual;
select NULLIF('a','b') from dual;
 
문자함수 NVL        높음 널값을 다른 값으로 대체할 때                          select NVL(null, '대체값') from dual;  
문자함수 NVL2        낮음 조건에 의해 널값을 다른 값으로 대체할 때              select NVL2('조건aa','null아님','null 값'), '조건aa' from dual;
select NVL2('조건bb','null아님','null 값'), '조건bb' from dual;
select NVL2(null,'null아님','null 값'), null from dual;
 
문자함수 REGEXP_REPLACE 낮음 정규식을 적용한 REPLACE 함수 select REGEXP_REPLACE('봉천12동', '[0-9]', '') from dual;  
문자함수 REPLACE    높음 특정 문자열을 다른 문자열로 대체                      select REPLACE('내차는 티코 입니다.', '티코', '아우디') from dual;  
문자함수 RPAD        보통 문자열을 제외한 공간에 지정한 문자열로 대체(오른쪽)  select RPAD('1',10,'0')  from dual;  
문자함수 RTRIM      보통 문자열 오른쪽 공백제거 select RTRIM('  a a a   ') from dual;  
문자함수 SUBSTR      높음 문자의 길이를 리턴할 때                              select SUBSTR('123일이삼abc', 5) from dual;
select SUBSTR('123일이삼abc', 5, 3) from dual;
 
문자함수 SUBSTRB      낮음 특정 문자의 문자열중 필요 부분만 선별하여 사용        select SUBSTRB('123일이삼abc', 5) from dual;
select SUBSTRB('123일이삼abc', 5, 14) from dual;
 
문자함수 TRANSLATE  낮음 첫인자의 문자를 탐색집합의 첫 문자로 대체 select TRANSLATE('봉천12동', 'X0123456789', 'X') from dual;
select TRANSLATE('abcde fgh I j', 'X ', 'X') from dual;
select TRANSLATE('abcde fgh I 123j', 'X0123456789, '') from dual;
select REGEXP_REPLACE('봉천12동', '[0-9]', '') from dual;
모든 경우 정규식으로 대체가능
문자함수 UPPER      높음 모든 문자를 대문자로                                  select UPPER('AaaBbbCC') from dual;  
시스템함수 USER 낮음 현재 DB 사용자 select USER from dual;  
숫자함수 ROUND  높음 해당 소수점 자리에서 반올림할 때          select ROUND(123.4567, 0) from dual;
select ROUND(123.4567, 2) from dual;
 
숫자함수 TRUNC  높음 해당 소수점 자리에서 절삭할 때            select TRUNC(123.4567, 0) from dual;
select TRUNC(123.4567, 2) from dual;
 
숫자함수 MOD    보통 m을 n으로 나누고 남은 나머지를 리턴할 때  select MOD(123.4567, 0) from dual;
select MOD(0,123.4567) from dual;
select MOD(123.4567, 3) from dual;
 
숫자함수 ABS    높음 숫자 값을 절대값으로 바꾼다              select ABS(123.4567) from dual;
select ABS(-123.4567) from dual;
 
숫자함수 SIGN    보통 숫자가 양수:+1, 음수:-1, 0:0              select SIGN(1234-5678) from dual;
select SIGN(1234-1234) from dual;
select SIGN(5678-1234) from dual;
 
숫자함수 FLOOR  높음 실수값을 정수값으로 내림                      select FLOOR(-5678.123) from dual;
select FLOOR(5678.123) from dual;
 
숫자함수 CEIL    보통 그 수보다 가장 크거나 작은값을 리턴      select CEIL(-5678.123) from dual;
select CEIL(5678.123) from dual;
 
숫자함수 POWER  낮음 해당 수에 대한 지수값을 표현              select POWER(2,8) from dual;  
숫자함수 LOG    낮음 로그값으로 변환                          select LOG(2,3.4) from dual;  
숫자함수 SIN    낮음 SIN값                                    select SIN(2) from dual;  
숫자함수 COS    낮음 COS값                                    select COS(2) from dual;  
숫자함수 TAN    낮음 TAN값                                    select TAN(2) from dual;  
날짜함수 SYSDATE      높음 현재 시스템 날짜를 보여줄 때                        select SYSDATE from dual;  
날짜함수 ADD_MONTHS    보통 지정한 날짜에 몇 월을 추가한 결과의 월을 계산할 때  select ADD_MONTHS(sysdate, 3) from dual;
select ADD_MONTHS(to_date('20101225','yyyymmdd'), 3) from dual;
 
날짜함수 LAST_DAY      보통 해당 월의 마지막 날짜를 알고자 할 때                select LAST_DAY(sysdate) from dual;
select LAST_DAY('20100301') from dual;
select to_char(LAST_DAY('20100301'),'dd') from dual;
 
날짜함수 NEW_TIME      낮음 해당 표준시로 시간을 변환할 때                      select NEW_TIME(sysdate, 'AST', 'ADT') FROM DUAL;
select NEW_TIME(TO_DATE( '11-10-04 01:23:33', 'MM-DD-YY HH24:MI:SS'), 'AST', 'PST') FROM DUAL;
AST,ADT  : Atlantic Standard or Daylight Time
BST,BDT  : Bering Standard or Daylight Time
CST,CDT  : Central Standard or Daylight Time
EST,EDT  : Eastern Standard or Daylight Time
GMT      : Greenwich Mean Time
HST,HDT  : Alaska-Hawaii Standard or Daylight Time
MST,MDT  : Mountain Standard or Daylight Time
NST      : Newfoundland Standard Time
PST,PDT  : Pacific Standard or Daylight Time
YST,YDT  : Yukon Standard or Daylight Time 
날짜함수 NEXT_DAY      낮음 입력일자 이후 기준으로 입력요일이 돌아오는 날짜를 반환 select NEXT_DAY(sysdate, 1 ) from dual; 1~7 : 일요일 ~ 토요일
날짜함수 MONTHS_BETWEEN 보통 지정된 월 간의 월수를 알고자 할 때                  select MONTHS_BETWEEN('20000923',sysdate) from dual;  
변환함수 TO_CHAR    높음 숫자,날짜 타입의 Data를 varchar2타입으로 변환      select TO_CHAR(sysdate, 'YYYY-MM-DD') from dual;  
변환함수 TO_NUMBER  보통 숫자를 포함하는 문자 String을 number 타입으로 변환  select '[123'|| TO_NUMBER('0.3400')|| ']' from dual;
select '[123'|| '0.3400'|| ']' from dual;
 
변환함수 TO_DATE    높음 문자 String을 날짜 타입으로 변환                    select TO_DATE('2010-02-23', 'yyyy-mm-dd') from dual;  

 

날짜함수  요일변환

 

select  to_char(sysdate,'d') as week1
        , to_char(sysdate,'dy') as week2
        , to_char(sysdate,'day') as week3
  from dual;

 

반응형