Oracle-04
数据查询语言---DQL 1、查询语句中函数的使用 ? ? 单行函数:每一行数据会返回一个结果 ? ? 1)数字函数 ? ? ? * round(数字,保留到小数点后指定位数):用于对数字进行四舍五入 select round(123.456,2) from dual; //保留小数点后两位
? ? ? * trunc(数字,截取到小数点后指定的位数):用于截取数据,若第二个参数没有,默认为0 select trunc(123.456,1) from dual; //123.4,截取到小数点后面一位
? ? 2)日期函数 ? ? ? * sysdate:返回系统当前的时间 select sysdate from dual;
? ? ? * months_between(d1,d2):计算这两个日期之间相隔的月份 eg:计算员工入职多少个月 ? ? ? * add_months(date,number):在date时间增加number个月 eg:计算四个月之后的时间 ? ? ? ?* last_day(date):当前月份的最后一天 eg:计算上个月(5月份)最后一天 ? ? 3)转换函数 ? ? ? a. 常用日期格式 ? ? ? ? * yyyy:四位的年----2018 ? ? ? ? * year:全拼的年----twenty eightteen或2018年 ? ? ? ? * mm:两位的月份---06 ? ? ? ? * month:全拼的月---June或6月 ? ? ? ? * mon:简拼的月 ? ? ? ? * dd:表示两位的天---05 ? ? ? ? * day:表示全拼的星期---Tuesday或星期二 ? ? ? ? * dy:简拼的星期---Tue或星期二 ? ? ? ? * am/pm:上午/下午 ? ? ? b. to_char(日期数据,指定的格式):将日期数据按照指定格式转换成字符数据 select to_char(sysdate,‘month‘) from dual; ? ? ? c. to_date(字符数据,指定格式):将字符数据按照指定格式转换成日期数据 select to_date(‘2018-06-05‘,‘DD-MON-YY‘) from dual;//报格式不匹配错误 ? ? 4)其他函数 ? ? ?* coalesce(参数列表):目的是返回参数列表中第一个非空参数值,参数列表中最后一个值通常是常量,coalesce(d1,d2,d3,...,100) eg:计算员工的年终奖(要求:bonus不为null,年终奖就是bonus;bonus为null,年终奖是salary*0.05;bonus和salary都是null,年终奖就是100) ? ? ? * case...when:表示数据的分支 eg:根据员工的职位来计算加薪之后的薪水(要求:若职位是‘Analyst’加薪20%;若职位是‘Programmer‘加薪5%;若职位是‘Clerk‘加薪2%;其他职位薪水不变) ? ? ? * decode(判断条件,匹配1,值1,匹配2,值2...默认值):作用和case..when是一样的 select ename,decode(position,‘Analyst‘,salary*1.2,‘Programmer‘,salary*1.05,‘Clerk‘,salary*1.02,salary) new_salary from emp_xu;
2、组函数:多行数据返回一个结果(如求平均成绩) ? ? 1)count():求记录数,能够处理任何数据类型,忽略空值 eg:根据员工号统计有多少条记录 ? ? 2)sum()/avg():求和/求平均 ? ? ? ? 注:只能处理数值类型的数据,忽略空值 ? eg:计算员工的薪水总和 select sum(salary) from emp_xu; eg:计算员工的人数、薪水总和、平均薪水 select count(*),sum(salary),avg(salary) from emp_xu;//有一个salary 为null,最终计算平均会忽略掉 ? ? 3)min()/max():最小值/最大值(能够处理任何数据类型) eg:计算员工的最高薪水、最低薪水 ? ? 总结: ? ? ? ?a. ?count/sum/avg/max/min:如果函数写列名默认是忽略空值的 ? ? ? ?b. ?count(*)不忽略空值:sum/avg针对数值类型操作 ? ? ? ?c. ?max/avg:针对全部的数据类型操作 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- PostgreSQL:查找有关用户定义类型的信息
- 推荐60+ Flex开发参考网站
- 模拟实现WPF的依赖属性及绑定通知机制(4)--模拟实现绑定连
- ruby – rspec stub允许传递[hash_key]
- 查询规划控制 The SQLite Query Planner
- 用c语言动态操作sqlite3数据库1
- ruby-on-rails – Rails“任何?”实例方法回调?
- mandatory argument 'crshome' is missing
- Postgresql:最好使用多个数据库,每个有1个模式,或者1个数据
- 【译】Swift2 中的错误处理:try,catch,do 以及 throw