笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值,找寻数据的秘密,笔者认为,数据的价值不仅仅只体现在企业中,个人也可以体会到数据的魅力,用技术力量探索行为密码,让大数据助跑每一个人,欢迎直筒们关注我的公众号,大家一起讨论数据中的那些有趣的事情。
我的公众号为:livandata
oracle中的函数有多种类型,前面讲过聚合函数、分类函数,这些函数的特性是:
1)不能与select显示的单独字段一起显示,除非是作为group by的关键字;
2)不能作为where子句的显示条件;
上述sql语句是不正确的。
但是另外还有一部分函数,可以与select显示的单独字段一起显示,而且也可以作为where的约束条件,这些函数就是下面要介绍的函数:
1、字符函数:
例如:
1)所有姓名按照小写的方式显示:
Select lower(ename), sal from emp;
字符函数与聚合函数的区别在于他们可以与单个字段一起显示;
2)length()函数的应用:
字符函数能够在where子句中使用;
3)显示所有员工姓名的前三个字符:
对ename字段,从第1个位置开始,取3个字符。
4)首字母大写的方式显示所有员工名称:
5)除第一个字母,其他字母以小写的方式显示所有员工名称:
将两者合并,则形成首字母大写,其他字母小写的形式:
另外有些字符函数:
用“我是老鼠”替换A:
例如:
1)round函数:
2)trunc函数:
3)floor函数:
4)ceil函数:
5)mod函数:
显示在一个月为30天的情况下,所有员工的日薪金,忽略余数。
2、日期函数:
例如:
1)sysdate的应用:
2)add_months(d, n):从d天开始,再加上n个月。
3)显示满10年的员工信息:
4)对于每个员工显示其加入公司的天数:
5)倒数第三天入职:
3、转换函数:
在部分情况下,需要手动转换:
例如:
1)日期是否可以显示为固定格式:
2)薪水的货币单位,在sal的前面添加货币单位:
Select ename, to_char(hiredate, ‘yyyy-mm-dd hh24:mi:ss’), to_char(sal, ‘L99,999.99’) from emp;
L99,999.99表示为:本地的(L)货币符号,后面的9为主要的货币格式,其中的逗号为千分位分隔符。
3)显示1980年入职的所有员工:
4)显示所有12月份入职的员工:
4、系统函数:
Userenv:固定格式,后面的参数为上面的内容,对db_name做替换即可。
1)当前用的哪个数据库:
2)当前用的哪个语言:
Current_schema:方案名,一个用户对应一个方案,方案名与用户名是一致的。方案中存在较多的数据对象(表、视图、触发器等)。
以上为对常用非聚合函数的总结,oracle中还会有其他函数类型,如果用到再做补充。