Oracle数据库函数非常多,平时常用的只有那么几种,大象根据实际项目情况,列举几个最常用的函数综合运用的例子。
我这里所说的是针对Oracle数据库特有的函数,不包括SQL本身就有的。几个常用的Oracle函数:nvl、to_char、to_date、to_number、trim、length、substr、等等,当然我这是根据自己的使用情况进行列举,如果有遗漏的,还请大家帮忙补充,给出具体的例子,谢谢。
select nvl(sum(c.f_factplan),0) f_factplan from pay_certificate c left join pay_reporting r on r.f_id=c.f_repid where to_number(r.f_year||trim(to_char(r.f_month,’09’)))<(select to_number(r.f_year||trim(to_char(r.f_month,’09’))) yearmonth from pay_certificate t left join pay_reporting r on r.f_id=t.f_repid where t.f_id=7) and c.f_ctrid=15 |
上面这条sql语句综合运用了好几个函数,这里,我们不考虑这条SQL语句的业务,只单纯的从SQL出发。to_char(r.f_month,’09’),将f_month字段中的月份每个都转换为两位长度,这种写法可能是因为f_month字段定义成了数字型,但是在查询中,又需要将它与年份组合成一个形如yyyymm格式的数字来进行大小的比较,这个例子就是如此,trim去掉组合后前后空格,然后用||操作符将它与年组合起来转换为数字。
select * from dtaq_data d inner join dtaq_data_info i on d.info_id=i.info_id where d.point_id = 1199 and i.info_type=’T’ and d.write_date <= to_date(‘2008-11-21 23:59:59′,’yyyy-mm-dd hh24:mi:ss’) |
这条SQL语句主要运用的就是to_date函数,记注意这里的小时、分、秒,与我们平时的yyyy-MM-dd HH:mm:ss的写法不一样,我们现在的时间一般都是使用24小时制,所以这里要写成hh24,如果是12小时制就去掉24
select a.f_id,a.f_name from orgaizeation a inner join (select case when length(o.f_nodecode)>8 then substr(o.f_nodecode,1,8) else o.f_nodecode end f_nodecode from orgaizeation o where o.f_id = 23) b on a.f_nodecode=b.f_nodecode order by b.f_nodecode |
这里用到了条件判断,when…then…else,length函数判断字符串的长度,substr对字符串进行截取,注意起始位置的索引为1,这和我们一般认为的0开始不一样。
这几个例子都很简单,前面提到的几个Oracle函数都有运用,我在实际开发中,这也是用的最多的,其它的还请各位大大分享一下自己的宝贵经验,互相交流,共同提高。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
Collaborate 18大会:了解甲骨文云数据库和应用的进展
在Collaborate 18大会即将举行时,我们会发现,甲骨文用户社区的技术变化会略高于平常水平。 由独立甲 […]
-
甲骨文自治数据库亮相 带来云计算新希望
早前甲骨文还不在云计算公司之列,而现在该公司正在迅速弥补其失去的时间。甲骨文的云计算核心是甲骨文自治数据库(O […]
-
Oracle TNS 错误:管理员旷日持久的战斗
TNS经常给IT管理员带来麻烦,而且很难定位。尤其是在Oracle数据库中。本文将介绍如何避免这些常见错误。
-
DBA支招:如何实现Oracle EBS 12.2.5升级
那些对于是否要将EBS进行升级持观望态度的Oracle数据库管理员们可以从一家研究公司获得一些启示。