Oracle常用函数
--今天日期 select sysdate from dual; --系统自动生成32位id select sys_guid() from dual; --日期格式说明 /*Year: yy :两位年 yyy :三位年 yyyy:四位年 Month: mm :两位月 Day: dd :当月第几天 ddd :当年第几天 dy :当周第几天简写 day :当周第几天全写 Hour: hh :12小时进制 hh24:24小时进制 Minute: mi :60进制 Second: ss :60进制 其它: Q :季度 WW :当年第几周 W :当月第几周 */ --日期格式转换 select to_char(sysdate,'yyyy-MM-dd hh24:mi:ss') from dual --字符串转日期格式 select to_date('2016-12-9' , 'yyyy-MM-dd') from dual --字符串截取,从字符串的第i位开始返回长度为j的子字符串,如果j为空,则直到串的尾部 select substr('Message',1,4) from dual --去掉字符串首位空格 select trim(' space padded ') trim from dual; --四舍五入,第二个参数为保留小数位数,省略0 select round(34.698787,3) from dual; --截取小数,不按照四舍五入 select trunc(34.698787,1) from dual; --向上取整 select ceil(5.1) from dual; --向下取整 select floor(6.1) from dual; --数字格式化,小数后第三第四为不足补0,结果为12345.1230 select to_char(12345.123,'99999999.9900') from dual; --结果为 .1230 select to_char(0.123,'99999999.9900') from dual; --结果为 0.1230 select to_char(0.123,'99999990.9900') from dual; --绝对值 select abs(-5) from dual --求余 select mod(5,3) from dual --大写 select upper('zzz') from dual --小写 select lower('sDF') from dual --检查字段是否为空,检查student表的all字段是否为空,如果为空,置为0 select nvl(t1.all,0) from student t1 --decode,即if else if ,最后一个为缺省值,即不满足前面所有的值的情况下,输出的默认值 select decode(t1.all,0,'总分为0','100','满分','分数为xxx') from student t1
--wm_concat可将多行中某列或多列的值拼接成一个值返回 select to_char(wm_concat(id)) from student
--MONTHS_BETWEEN检查两个日期间相隔多少月,第1个参数比第2个小,则为负数 select MONTHS_BETWEEN(sysdate,to_date('2017-02-01','yyyy-mm-dd')) from dual
--CAST()函数的参数有两部分,源值和目标数据类型,中间用AS关键字分隔 --在create table as select中可能用到 SELECT CAST('123' AS varchar2(4)) as result from dual;
--将某个字符串分割为几行。可用于select查询中的in --待分割字符串CD-FCHANNEL-770100287000 --分割字符 - --结果: --CD --FCHANNEL --770100287000 select regexp_substr('CD-FCHANNEL-770100287000', '[^-]+', 1, rownum) from dual connect by rownum <= length(regexp_replace('CD-FCHANNEL-770100287000', '[^-]', null)) + 1
729010328@qq.com
浙公网安备 33010602011771号