AVG()和to_date()函数的使用
1.一道关于AVG函数和NULL值的面试题
某部门有10个员工,其中9个工资为1000,另一个为NULL,当使用AVG函数取该部门平均工资时,结果应该是多少?
A.1000
B.900
我这里把题目再延伸一下,如果我们count(工资)结果是多少? A.10, B.9
实践出真知
SQL> select * from v$version;
BANNER
-------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
PL/SQL Release 11.1.0.7.0 - Production
CORE 11.1.0.7.0 Production
TNS for Linux: Version 11.1.0.7.0 - Production
NLSRTL Version 11.1.0.7.0 - Production
SQL>
SQL> drop table t purge;
Table dropped.
SQL> create table t(sal number);
Table created.
SQL> insert into t values (10);
1 row created.
SQL> insert into t values ('');
1 row created.
SQL> insert into t values(0);
1 row created.
SQL> commit;
Commit complete.
SQL> select * from t;
SAL
----------
10
0
SQL> desc t
Name
Null? Type
----------------------------------------- --------
-------------------------
SAL
NUMBER
SQL> select count(*),count(sal),sum(sal),avg(sal) from t;
COUNT(*) COUNT(SAL)
SUM(SAL) AVG(SAL)
---------- ---------- ---------- ----------
3 2
10 5
2. oracle to_date()比较的怪异问题select case when to_date('2013','yyyy')>to_date('20130801','yyyymmdd') then 'true' else 'false' end from dual
结果 true
select case when to_date('2013','yyyy')>to_date('20130901','yyyymmdd') then 'true' else 'false' end from dual
结果 false
有人知道原因不?
select to_date('2013', 'yyyy')
from dual;查询出来的结果 2013-09-01
to_date('2013','yyyy')>to_date('20130801','yyyymmdd')这个条件满足,所以为true,
to_date('2013','yyyy')>to_date('20130901','yyyymmdd')这里结果为相等,所以结果为false.
如果改为to_date('2013','yyyy')>=to_date('20130901','yyyymmdd')结果就为true
注:
to_date(‘年’,’yyyy’)每年的第一天, 现在 看来取的是年份以及 当前月的第一天
AVG()和to_date()函数的使用的更多相关文章
- Oracle to_date()函数的用法
Oracle to_date()函数的用法 to_date()是Oracle数据库函数的代表函数之一,下文对Oracle to_date()函数的几种用法作了详细的介绍说明,供您参考学习. 在Orac ...
- greenplum中to_date函数注意点
今天协助排查异常数据,发现是如下类似代码产生的: to_date(col_name,'yyyymmdd'),其中col_name是date类型. 这个代码运行后,结果是:2018-11-16的date ...
- Oracle to_date()函数的用法介绍
to_date()是Oracle数据库函数的代表函数之一,下文对Oracle to_date()函数的几种用法作了详细的介绍说明,需要的朋友可以参考下 在Oracle数据库中,Oracle t ...
- Oracle to_char()和to_date()函数的用法
to_char()函数是我们经常使用的函数,下面就为您详细介绍Oracle to_date()函数的用法 1.to_char()函数分析 1)SQL中不区分大小写,MM和mm被认为是相同的格式代码 先 ...
- Oracle to_date()函数的用法《转载》
to_date()是Oracle数据库函数的代表函数之一,下文对Oracle to_date()函数的几种用法作了详细的介绍说明, 原文地址:http://database.51cto.com/art ...
- oracle to_date函数和mysql DATE_FORMAT函数用法
一.在Oracle中,当想把字符串为‘2011-09-20 08:30:45’的格式转化为日期格式,我们可以使用oracle提供的to_date函数. sql语句为: SELECT to_date(' ...
- To_Date函数用法
spl> select * from emp where dates between to_date('2007-06-12 10:00:0 ...
- Oracle数据库to_date函数注意事项
使用PL/SQL连接到Oracle数据库服务器,执行一条update语句: update pjnl set transtime = to_date('2015-05-14 12:13:20','yyy ...
- mysql类似to_char()to_date()函数mysql日期和字符相互转换方法date_f
mysql 类似to_char() to_date()函数mysql日期和字符相互转换方法 date_format(date,'%Y-%m-%d') -------------->oracle中 ...
随机推荐
- .Net (MVC) 随机生成验证码
以前一直对C#的GDI画图部分知识点不怎么用所以忘得差不多了,这两天正好公司要做一个博客系统,其中一个需求就是留言时为了防止恶意攻击必须填写验证码,正好借着这个机会复习了一下,以下是实现代码,写的比较 ...
- Swiper之滑块4
最炫3D走一波: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" ...
- arraylist寻址
首先感谢小不点儿同学提供的思路. 问题背景:把manage.aspx中的gridview列出的所有ID值传入下一个页面(放入arraylist,并通过session传递arraylist). 点击ID ...
- apache Internal Server Error 的几个问题
Internal Server Error The server encountered an internal error or misconfiguration and was unable to ...
- UIView总结---对UIView头文件中的大部分信息进行中文注释
@interface UIView : UIResponder<NSCoding, UIAppearance, UIAppearanceContainer, UIDynamicItem> ...
- 根据DateTime来获取当天是周几(已完结)
只需要以下代码: @System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetDayName(item.CreateTime. ...
- UI4_UIImageView
// // ViewController.m // UI4_UIImageView // // Created by zhangxueming on 15/7/1. // Copyright (c) ...
- OC3_协议关键字
// // Student.h // OC3_协议关键字 // // Created by zhangxueming on 15/6/24. // Copyright (c) 2015年 zhangx ...
- C# 将日期转换成中文格式
没有什么难点,只是要小心,要考虑到月.日上 10 的说法,比如:10 不能直接转换成一〇,也不能像上 20 那样转换成一十〇,应该是十. 特点总结: 数字为 10 时,结果为十: 数字大于 10 时, ...
- 开放-封闭原则(OCP)
对于僵化性的臭味,应用OCP原则之后,再进行同样的改动时,只需添加新代码,而不必改动已正常运行的代码. 扩展模块行为的方式通常是修改模块的Code,不允许修改的模块常常被认为是具有固定的行为. Ope ...