ITPub博客

首页 > 数据库 > Oracle > 转载:greatest/least vs. max/min内建oracle函数

转载:greatest/least vs. max/min内建oracle函数

Oracle 作者:zhonwjx 时间:2013-09-06 18:12:45 0 删除 编辑

greatest/least vs. max/min内建oracle函数

转载自:http://blog.csdn.net/luocm/article/details/1661352

 

使用Oracle9i数据库已经快2年了, sql语句编写及查询优化均有所涉及。对于oracle的内建函数也基本都用过。比如针对字符型、数值型、日期型的单行处理函数(substr / length / instr..., sin / cos /..., to_date / to_char / month_between / ...) ;聚合运算(max / min / avg / sum / ...);分析函数(last / ...)。曾经也到网上下了oracle的函数大全,看过几遍。但还是存在了知识的盲点,让人惭愧。这里要说到的是greatest / least两个函数。原来一直没找到oracle里求最大最小值的单行函数,所以用了替代方案。

比如算a和b的最大值,写成decode(sign(a-b), 1, a, b)算最大值。当然这个也能满足我们的要求,唯一的缺陷是可读性比较差。今天早上看到同事写的pl/sql代码中用到了greatest函数,恍然大悟,惭愧的不行了。

greatest和least函数输入参数为表达式列表,即greatest(expr_list)。表达式的形式可以多样化,支持大多数的数据类型(只要该类型数据能相互比较)。比如
greatest(1, 2, 3, 4)
greatest(to_date('20070101', 'yyyymmdd'), sysdate)
greatest('abc', 'abc1')

到oracle函数大全中,寻找了一下,发现该函数赫然在列,使用方法写的清清楚楚。以前一直没用过,所以以为不存在这样的函数。改写了原来的代码,可读性好多了。写到sql语句中的话,如果循环次数很大,超过100万以上,估计性能也比用decode方式的好。总之,惭愧一个,同时感觉到学海无涯

<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22075308/viewspace-1116337/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-07-09