Oracle数据库提供了大量的内置函数,可以用于完成各种操作,如字符串操作,数学计算,日期时间处理,条件判断,序列生成,聚合统计等。以下是一些常用的Oracle数据库函数:
一、oracle 使用函数常用的两种计算求和写法
第一种,使用decode函数
sql
select sum(decode(t.del_flag,'0',1,'1',0)) flag from t_orders t;
第二种,使用 case when then
sql
select sum( case t.del_flag
when '0' then 1
when '1' then 0 end) flag
from t_orders t;
二、订单到期日,从1月1号开始至上月月底
sql
select * from t_orders t
where T.enddate BETWEEN TRUNC(SYSDATE, 'YYYY')
AND LAST_DAY(ADD_MONTHS(TRUNC(SYSDATE), -1))
三、计算日期函数
sql
LAST_DAY(ADD_MONTHS(TRUNC(SYSDATE), -1));
例如:
今年的最后一天时间
sql
select TRUNC(ADD_MONTHS(sysdate, 12),'YYYY') - 1 from dual;
匹配的时间是当月的1号时间
sql
select trunc(t.enddate, 'MM') from t_orders t;
四、abs取绝对值
sql
and abs(t1.enddate - t2.enddate) < 60)
五、nvl判断空
sql
NVL(V_COUNT, '0') V_COUNT;
六、FLOOR函数
在Oracle中,FLOOR函数,它用于向下取整。具体地说,FLOOR函数会返回小于或等于指定数字的最大整数。
例如:
sql
select FLOOR(25*2/3) - 1 from dual;
计算结果=15
七、SUBSTR 字符串截取
sql
AND SUBSTR(t.flag, 3, 1) IN ('0', '1')
下标从1开始,第3个位置开始截取1位字符
八、TRIM 去空格
TRIM(string); 去除字符串两端的空白字符
九、INSTR 字符查找函数
sql
INSTR(t.ERROR_MESSAGE,'确认码标记',1)
字符查找函数,其功能是查找一个字符串在另一个字符串中首次出现的位置。
INSTR 函数的基本语法如下:
INSTR(str, sub[, pos[, nth]])
str
:表示要在其中进行搜索的源字符串。sub
:表示要搜索的子串。pos
:可选参数,表示搜索的起始位置,默认为 1,即从字符串的开头开始搜索。nth
:可选参数,表示要查找子串的第几次出现,默认为 1,即查找子串的第一次出现。
当 INSTR 函数执行搜索时,它会返回子串 sub
在源字符串 str
中第 nth
次出现的位置索引。如果子串未找到,INSTR函数将返回 0。