[Oracle] sqlplus 함수
- Information Logs/IT Notes
- 2014. 8. 23. 23:51
(1) 수치 함수
SQL> select abs(-15) from dual;
--> 절대값을 반환한다.
SQL> select ceil(15,7) from dual;
--> 천정값을 반환한다.
SQL> select mod(11,4) from dual;
--> 나머지값을 반환한다.
SQL> select power(2,3) from dual;
--> 제곱승을 반환한다.
SQL> select round(3.2111, 2) from dual;
--> 소숫점 2번째 자리까지 반올림하여 반환한다.
SQL> select sqrt(9) from dual;
--> 제곱근을 반환한다.
SQL> select trunc(15.12, 1) from dual;
--> 소수점 1번째 자리에서 버림한다. 두번째 변수를 음수로 넣어주면 정수자리 표현.
(2) 문자 함수
SQL> select concat('welcome','to oracle') from dual;
--> 문자를 합쳐준다.
SQL> select initcap('oracle') from dual;
--> 첫글자를 대문자로 바꿔준다.
SQL> select lower('ORACLE') from dual;
--> 모든 글씨를 소문자로 바꿔준다.
SQL> select upper('oracle') from dual;
--> 모든 글씨를 대문자로 바꿔준다
SQL> select substr('oracle',2,4) from dual;
--> 2번째 글짜앞 부분은 잘라내고 그 뒤로 4개까지 리턴한다
SQL> select length('oracle') from dual;
--> 글자의 길이를 리턴한다.
SQL> select lpad('oracle',10,'-') from dual;
--> 크기를 정하고 남는 왼쪽부분을 - 로 채운다.
SQL> select rpad('oracle',10,'-') from dual;
--> 크기를 정하고 남는 오른쪽부분 - 로 채운다
SQL> select ltrim('ababacabab','ab') from dual;
--> 왼쪽부터 검사해서 a와 b중 같으면 지우고 다르면 멈춘다.
SQL> select rtrim('ababcabab','ab') from dual;
--> 오른쪽부터 검사해서 a와 b중 같으면 지우고 다르면 멈춘다.
SQL> select trim('ababcabab','a') from dual;
--> 양쪽에서 a를 찾아 지운다.
SQL> select trim(leading 'a' from 'ababcabab') from dual;
--> Ltrim과 같음
SQL> select trim(trailing 'a' from'ababcabab') from dual;
--> Rtrim과 같음
SQL> select translate('abcdcba','abc','xyz') from dual;
--> a대신 x를 , b대신 y를 , c대신 z를 리턴한다.
SQL> select REPLACE('Welcome to Oracle','Welcome','Thanks') from dual;
--> 문자열을 대체하여 리턴한다.
(3) Date 함수
SQL> select sysdate from dual;
--> 데이터베이스의 현재 시간을 리턴한다.
SQL> select current_date from dual;
--> 세션의 현재 시간을 리턴한다.
SQL> select last_day(to_date('2011-02-14') from dual;
--> 해당날짜가 속한 날의 마지막 날짜를 리턴한다.
SQL> select next_day(sysdate,'Wed') from dual;
--> 해당일 이후에 지정된 요일의 날짜를 리턴한다.
(4) 변환함수
SQL> select hiredate, to_char(hiredate, 'YYYY YYYY YYYY') from emp;
--> 날짜를 문자형으로 변환하여 포맷과 동일하게 리턴한다.
SQL> select to_date(20110711, 'RRRR MM DD') from dual;
--> 숫자를 날짜형으로 변환하여 리턴한다.
SQL> select sal, to_char(sal, '$000,000.00'), to_char(sal, 'L999,999,99', 'nls_currency=\') from emp;
--> 화폐의 단위를 직접 지정해 리턴하거나 currency를 지정하여 리턴하는방법
(5) General 함수
SQL> select nvl(comm, 0) from emp;
--> comm값이 null 이면 0을 리턴
SQL> select nvl2(comm, sal, sal+comm) from emp;
--> comm이 null이면 sal을 아니면 sal+comm을 리턴
SQL> select nullif(a, b) from t1;
--> a값과 b값이 같으면 null을 리턴하고 다르면 a값을 리턴한다.
SQL> select a,b,c coalesce(a,b,c,0) d from t1;
--> d 컬럼에 a값, a가 null이면 b값, b가 null이면 c값, 모두 null이면 0을 리턴한다.
SQL> select decode(deptno, 10, sal*1.2, 20, sal*1.5, sal) from emp;
--> deptno가 10이면 sal*1.2를 20이면 sal*1.5를 나머지는 sal을 리턴한다.
(나머지(defaul)값을 정해주지 않으면 null이 리턴된다.)
(6) 그룹함수
SQL> select count(empno) from emp;
--> null값을 제외한 row 갯수를 리턴한다.
SQL> select avg(sal) from emp;
--> 평균값을 리턴한다.
cf. 널값이 있는 경우 평균 계산을 주의하자
--> select avg(comm), avg(nvl(comm,0)) from emp;
SQL> select sum(sal) from emp;
--> 합계를 리턴한다.
SQL> select min(sal) from emp;
--> 최소값을 리턴한다.
SQL> select max(sal) from emp;
--> 최대값을 리턴한다.
SQL> select stddev(sal) from emp;
--> 표준편차를 리턴한다.
SQL> select variance(sal) from emp;
--> 분산값을 리턴한다.