oracle的一些函数(一)

2014-11-24 12:48:33 · 作者: · 浏览: 0
oracle的一些函数
Java代码
-- 取模MOD(n1,n2) 
SELECT MOD(25,3) FROM DUAL ;
-- 四舍五入ROUND(n1[,n2]) 
SELECT ROUND(23.56) r,FLOOR(23.56) f,CEIL(23.56) c FROM DUAL ;
SELECT ROUND(23.56,1) r FROM DUAL ;
-- 截取TRUNC(n1[,n2])
SELECT TRUNC(23.56) FROM DUAL ;
SELECT TRUNC(23.56,1) FROM DUAL ;
-- 求对数
SELECT LOG(1.1,1.2) FROM DUAL ;
-- 求平方
SELECT POWER(2,3) FROM DUAL ;
-- 求平方根
SELECT SQRT(4) FROM DUAL ;
-- 字符转大写
SELECT UPPER('com.akwolf.upper') FROM DUAL ;
-- 字符转小写
SELECT LOWER('COM.AKWOLF.LOWER') FROM DUAL ;
-- 单词首字母大写
SELECT INITCAP('com.akwolf.initcap') FROM DUAL ;
-- 左填充
SELECT LPAD('akwolf',10,'$') FROM DUAL ;
-- 右填充
SELECT RPAD('akwolf',10,'$') FROM DUAL ;
-- 截取首尾空格
SET SERVEROUT ON ;
DECLARE
t_str VARCHAR2(100) ;
BEGIN
SELECT TRIM('   akwolf    ') INTO t_str FROM DUAL ;
DBMS_OUTPUT.PUT_LINE('F--->'||t_str||'<----E') ;
END;
-- 截取头部分的空格
SET SERVEROUT ON ;
DECLARE
t_str VARCHAR2(100) ;
BEGIN
SELECT TRIM(LEADING ' ' FROM '   akwolf    ') INTO t_str FROM DUAL ;
DBMS_OUTPUT.PUT_LINE('F--->'||t_str||'<----E') ;
END;
-- 截取尾部分的空格
SET SERVEROUT ON ;
DECLARE
t_str VARCHAR2(100) ;
BEGIN
SELECT TRIM(TRAILING ' ' FROM '   akwolf    ') INTO t_str FROM DUAL ;
DBMS_OUTPUT.PUT_LINE('F--->'||t_str||'<----E') ;
END;
-- 逐字符替换
SELECT TRANSLATE('AKWOLF','AO','$%') FROM DUAL ;
-- 截取字符串(第二个参数为负则从右往左数的位置)
SELECT SUBSTR('AKWOLF',2,3) FROM DUAL ;
-- 根据ASCII码返回字符值
SELECT CHR(65) FROM DUAL ;
-- 连接两个字符串
SELECT CONCAT('COM','AKWOLF') FROM DUAL ;
-- INSTR(c1,c2[,n1[,n2]]) :返回c2在c1中位置
SELECT INSTR('ABCDABCD','B') FROM DUAL ;
SELECT INSTR('ABCDABCD','B',3) FROM DUAL ;
SELECT INSTR('ABCDABCD','B',-1) FROM DUAL ;
-- LENGTH返回指定字符串的长度
SELECT LENGTH('AKWOLF张') FROM DUAL ;
-- 通过字符取得ASCII码
SELECT ASCII('张') FROM DUAL ;
-- ADD_MONTHS()返回指定日期月份+n之后的值
SELECT ADD_MONTHS(SYSDATE,10) FROM DUAL ;
-- CURRENT_DATE当前时间
SELECT CURRENT_DATE,SYSDATE,SYSTIMESTAMP(4) FROM DUAL ;
-- 指定时间的月最后一天
SELECT LAST_DAY(SYSDATE) FROM DUAL ;
-- NEXT_DAY(d,n)返回指定日期后第一个n的日期,n为一周中的某一天。
SELECT NEXT_DAY(SYSDATE,'星期五') FROM DUAL ;
-- 返回两个月之间的月份差
SELECT MONTHS_BETWEEN(SYSDATE,ADD_MONTHS(SYSDATE,10)) FROM DUAL ;
-- 取时间近似值
SELECT ROUND(SYSDATE,'HH24') FROM DUAL ;
-- 截取时间
SELECT TRUNC(SYSDATE,'MM') FROM DUAL ;
-- TO_CHAR()转化varchar2,nchar等到char类,转化时间,数字到char
SELECT TO_CHAR('AABBCC') FROM DUAL ;
SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS') FROM DUAL ;
SELECT TO_CHAR(100,'L99G999D99MI') FROM DUAL ;
-- TO_DATE(c[,fmt[,nls]])将字符类型转化为时间类型
SELECT TO_DATE(54557,'J') FROM DUAL ;
SELECT TO_NUMBER(TO_CHAR(TO_DATE('9999-12-31','yyyy-mm-dd'),'j')) FROM DUAL;
-- DECODE条件判断
SELECT DECODE('A','A','AKWOLF','C','COM','DEFAULT') FROM DUAL ;
-- 取得序列中的最大值和最小值
SELECT GREATEST(45,1,5,89) max,LEAST(4