Oracle常用函数(持续更新)
Oracle常用函数一.对数字精度处理1.trunc(截取字符串)trunc(number[,decimals]) number 待做截取处理的数值,decimals 表明小数点要保留的位数,省略则截取全部小数 (decimals可为负数,当为负数时,数值以小数点左边开始截取,截取后用0替换) 例: select trunc(123.4) from dual --123; select trunc(123.45,1) from dual --123.4; select trunc(128.4,-1) from dual --120; trunc(date[,fmt]) date 为输入的一个日期,fmt为日期格式,用以指定的日期按格式截取。 例:select trunc(sysdate,'yyyy') -- 返回当年第一天 select trunc(sysdate,'mm') -- 返回当月第一天 select trunc(sysdate,'D') -- 返回当前星期第一天 2.round(四舍五入)round(number[,decimalPlace]) number:处理的数值 decimalPlace:要四舍五入的小数点位置(同trunc) 例: select round(123.4) from dual --120; select round(123.45,1) from dual --123.5; select round(128.4,-1) from dual --130; 3.ceil、floorceil(number) 获取比number大的最小整数。例:ceil(123.4) -- 124 floor(number) 获取比number小的最大整数。例:floor(123.4) -- 123 4.modmod(m,n) 表示m除以n的余数,若n=0,则返回m。select mod(7,5) from dual -- 2; 5.powerpower(m,n) 表示m的n次方.。select power(3,2) from dual --9; 6.signsign(n) n=0返回0,n>0返回1,n<0返回-1。select sign(12) from dual --1; 7.sqrtsqrt(n) n的平方根。select sqrt(25) from dual --5; 二、对字符进行处理concat(char1,char2) 连接char1和char2 select concat('11','22') fron dual; 1122 initcap(char) 把每个字符串的第一个字符换成大写 select initicap('mr.ecop') from dual; Mr.Ecop select lower/upper('MR.ecop') from dual; mr.ecop lpad(str1,n,str2) 左补n个str2字符,不够循环补充 select lpad('11',8,'23') from dual; 23232311 rpad(str1,str2) 右补n个str2字符,不够循环补充 select rpad('11','23') from dual; 11232323
SELECT LTRIM('abcdab','a') FROM DUAL; bcdab 若为b,结果仍为abcdab,不能跳删 rtrim(string,'str') 从右边删除字符,string可为字段或字符串,'str'为要删除字符串集 SELECT RTRIM('abcdab','b') FROM DUAL; abcda 若为a,结果仍为abcdab,不能跳删 replace(char,str1,str2) 字符串中所有str1换成str2 select replace('Scott','s','Boy') from dual; Boycott INSTR (string,set[,start[,occurrence] ] ) soundex(char) 返回发音类似拼写不同的字 ASCII(char) 返回字符串最左侧的ASCII码 TRANSLATE(string,from_str,to_str) 返回将(所有出现的)from_str中的每个字符替换为to_str中的相应字符以后的string。 SELECT TRANSLATE('abcdefghij','abcdef','123456') FROM dual; 123456ghij 三、日期进行处理sysdate 当前日期和时间 select sysdate from dual; select months_between(sysdate,to_date('20020812','YYYYMMDD')) from dual; 日期与nls有关,英文则为 'Monday' SELECT * FROM v$nls_parameters;SIMPLIFIED CHINESE 四、特殊格式日期处理Y或YY或YYY 年的最后一位,两位,三位 select to_char(sysdate,'YYY') from dual; select to_date('1970-01-01 00:00:01','yyyy-mm-dd hh24:mi:ss') from dual; 五、表达式条件匹配值decode(条件,值1,翻译值1,值2,翻译值2,缺省值) 相当于if 条件 = 值1 then return翻译值1; elsif条件 = 值2then return翻译值2; else return缺省值; end if; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |