函数中大杂烩

编程入门 行业动态 更新时间:2024-10-19 22:35:40

函数中大<a href=https://www.elefans.com/category/jswz/34/1000239.html style=杂烩"/>

函数中大杂烩

[b][color=red]常用日期函数整理:[/color][/b]
--获取某个月的最后一天
values( date('2010-01-14') + 1 month - day( date('2010-01-14') + 1 month)day );
--获取某个月的第一天
values( date('2010-01-14') + 1 month - day( date('2010-01-14') + 1 month)day + 1 day );
--获取日期为一周的周几
values(DAYOFWEEK(date('2010-09-05') -1 day) );
--获取日期为一周的周几(标准)
values(DAYOFWEEK_iso(date('2010-09-05') ) );
--返回参数中一年的第几周,用范围在 1-54 的整数值表示。以星期日作为一周的开始。
values(WEEK_iso(date('2010-09-06')));

[b][color=red]其它辅助函数[/color][/b]

1、DECODE(exp,s1,r1,s2,r2..s,r[,def]) 可以把它理解成一个增强型的if else,只不过它并不通过多行语句,而是在一个函数内实现if else的功能。
exp做为初始参数。s做为对比值,相同则返回r,如果s有多个,则持续遍历所有s,直到某个条件为真为止,否则返回默认值def(如果指定了的话),如果没有默认值,并且前面的对比也都没有为真,则返回空。
毫无疑问,decode是个非常重要的函数,在实现行转列等功能时都会用到,需要牢记和熟练使用。

例如:select decode('a2','a1','true1','a2','true2','default') from dual;

2、GREATEST(n1,n2,...n) 返回序列中的最大值
例如:SELECT GREATEST(15,5,75,8) "Greatest" FROM DUAL;

3、LEAST(n1,n2....n) 返回序列中的最小值
例如:SELECT LEAST(15,5,75,8) LEAST FROM DUAL;

4、NULLIF(c1,c2)
Nullif也是个很有意思的函数。逻辑等价于:CASE WHEN c1 = c2 THEN NULL ELSE c1 END
例如:SELECT NULLIF('a','b'),NULLIF('a','a') FROM DUAL;

5、NVL(c1,c2) 逻辑等价于IF c1 is null THEN c2 ELSE c1 END。c1,c2可以是任何类型。如果两者类型不同,则oracle会自动将c2转换为c1的类型。
例如:SELECT NVL(null, '12') FROM DUAL;

6、NVL2(c1,c2,c3) 大家可能都用到nvl,但你用过nvl2吗?如果c1非空则返回c2,如果c1为空则返回c3
例如:select nvl2('a', 'b', 'c') isNull,nvl2(null, 'b', 'c') isNotNull from dual;

更多推荐

函数中大杂烩

本文发布于:2024-03-11 22:29:54,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1730064.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:杂烩   中大   函数

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!