函数
1单行函数
字符函数,日期型,数据类型转换
- SCOTT>select abs(5),abs(-5) from dual; #dual 只有一行一列,用于运算数据测试用
- ABS(5) ABS(-5)
- ---------- ----------
- 5 5
- SCOTT>select mod(4,2) from dual; #取余数
- MOD(4,2)
- ----------
- 0
SCOTT>
- SCOTT>select lower('aaaaaaaaaaFFFFFFFFFFs') from dual; #大小写转换
- LOWER('AAAAAAAAAAFFFF
- ---------------------
- aaaaaaaaaaffffffffffs
- SCOTT>select sysdate from dual; #求日期
- SYSDATE
- ---------
- 28-FEB-12
- SCOTT>select sysdate+1 from dual;#日期加一天
- SYSDATE+1
- ---------
- 29-FEB-12
- SCOTT>select to_char(sysdate,'yyyy-mm-dd') from dual; #日期转换
- TO_CHAR(SY
- ----------
- 2012-02-28
- SCOTT>select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; #日期转换
- TO_CHAR(SYSDATE,'YY
- -------------------
- 2012-02-28 17:49:20
- SCOTT>select ename,to_char(sal,'L999,999,00') from emp; #工资转化为美元
- ENAME TO_CHAR(SAL,'L999,999
- ---------- ---------------------
- SMITH $8,00
- ALLEN $16,00
- WARD $12,50
- JONES $29,75
- MARTIN $12,50
- BLAKE $28,50
- CLARK $24,50
- SCOTT $30,00
- KING $50,00
- TURNER $15,00
- ADAMS $11,00
- JAMES $9,50
- FORD $30,00
- MILLER $13,00
- 14 rows selected.
- null值转换
nvl
- SCOTT>select ename sql ,comm,nvl(comm,0) from emp;
- SQL COMM NVL(COMM,0)
- ---------- ---------- -----------
- SMITH 0
- ALLEN 300 300
- WARD 500 500
- JONES 0
- MARTIN 1400 1400
- BLAKE 0
- CLARK 0
- SCOTT 0
- KING 0
- TURNER 0 0
- ADAMS 0
- JAMES 0
- FORD 0
- MILLER 0
- 14 rows selected.
- SCOTT>select ename sql ,comm,nvl2(comm,1,0) from emp; #非空返回一
- SQL COMM NVL2(COMM,1,0)
- ---------- ---------- --------------
- SMITH 0
- ALLEN 300 1
- WARD 500 1
- JONES 0
- MARTIN 1400 1
- BLAKE 0
- CLARK 0
- SCOTT 0
- KING 0
- TURNER 0 1
- ADAMS 0
- JAMES 0
- FORD 0
- MILLER 0
case表达式
- SCOTT>select ename,job,sal,case when job='CLERK' then 1.10*sal
- 2 when job='MANAGER' then 1.20*sal
- 3 else sal end "revised_salary"
- 4 from emp;
- #秘书和经理工资各加%10和%20,别的不加
- ENAME JOB SAL revised_salary
- ---------- --------- ---------- --------------
- SMITH CLERK 800 880
- ALLEN SALESMAN 1600 1600
- WARD SALESMAN 1250 1250
- JONES MANAGER 2975 3570
- MARTIN SALESMAN 1250 1250
- BLAKE MANAGER 2850 3420
- CLARK MANAGER 2450 2940
- SCOTT ANALYST 3000 3000
- KING PRESIDENT 5000 5000
- TURNER SALESMAN 1500 1500
- ADAMS CLERK 1100 1210
- JAMES CLERK 950 1045
- FORD ANALYST 3000 3000
- MILLER CLERK 1300 1430
- 14 rows selected.
转载于:https://blog.51cto.com/fghjk/791477