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()函数的使用的更多相关文章

  1. Oracle to_date()函数的用法

    Oracle to_date()函数的用法 to_date()是Oracle数据库函数的代表函数之一,下文对Oracle to_date()函数的几种用法作了详细的介绍说明,供您参考学习. 在Orac ...

  2. greenplum中to_date函数注意点

    今天协助排查异常数据,发现是如下类似代码产生的: to_date(col_name,'yyyymmdd'),其中col_name是date类型. 这个代码运行后,结果是:2018-11-16的date ...

  3. Oracle to_date()函数的用法介绍

    to_date()是Oracle数据库函数的代表函数之一,下文对Oracle to_date()函数的几种用法作了详细的介绍说明,需要的朋友可以参考下     在Oracle数据库中,Oracle t ...

  4. Oracle to_char()和to_date()函数的用法

    to_char()函数是我们经常使用的函数,下面就为您详细介绍Oracle to_date()函数的用法 1.to_char()函数分析 1)SQL中不区分大小写,MM和mm被认为是相同的格式代码 先 ...

  5. Oracle to_date()函数的用法《转载》

    to_date()是Oracle数据库函数的代表函数之一,下文对Oracle to_date()函数的几种用法作了详细的介绍说明, 原文地址:http://database.51cto.com/art ...

  6. oracle to_date函数和mysql DATE_FORMAT函数用法

    一.在Oracle中,当想把字符串为‘2011-09-20 08:30:45’的格式转化为日期格式,我们可以使用oracle提供的to_date函数. sql语句为: SELECT to_date(' ...

  7. To_Date函数用法

    spl> select * from emp          where dates          between          to_date('2007-06-12 10:00:0 ...

  8. Oracle数据库to_date函数注意事项

    使用PL/SQL连接到Oracle数据库服务器,执行一条update语句: update pjnl set transtime = to_date('2015-05-14 12:13:20','yyy ...

  9. mysql类似to_char()to_date()函数mysql日期和字符相互转换方法date_f

    mysql 类似to_char() to_date()函数mysql日期和字符相互转换方法 date_format(date,'%Y-%m-%d') -------------->oracle中 ...

随机推荐

  1. 在项目中使用SQLite数据库小结

    ------------------------------------------------------------------------推荐: - VS2012 使用 1.0.84 版的库 - ...

  2. 算法java(Robert Sedgewick)基本API-StdOut.java

    /************************************************************************* * Compilation: javac StdO ...

  3. oracle PL/SQL(procedure language/SQL)程序设计(续集)之PL/SQL函数

    PL/SQL函数 examples:“ 构造一个邮件地址 v_mailing_address := v_name||CHR(10)||                                 ...

  4. Javascript常见操作

    图片预加载 var image = new Image();image.onload = onLoad;image.onerror = onLoad;image.src =src; image.com ...

  5. C# 新特性 dynamic的使用及扩展

    个人而言感觉C#的dynamic是一个特别实用的东西,为日常开发工作中的封装,数据传递等带来了很高的可扩展性. C#4.0中通过对数据类型后期绑定的支持,演化出了dynamic.任何直接声明为这种类型 ...

  6. Part 30 to 31 Talking about Interfaces in c#

    Part 30 Interfaces in c# We create interfaces using interface keyword. just like classes interfaces ...

  7. CSS之隐藏元素

    1.opacity=0,该元素隐藏起来了,但不会改变页面布局,并且,如果该元素已经绑定一些事件,如click事件,那么点击该区域,也能触发点击事件的2.visibility=hidden,该元素隐藏起 ...

  8. 放弃SCOPE_Identity,使用OUTPUT代替

    最近项目中使用了SCOPE_IDENTITY()来获取新增数据的自动递增ID号. 在运行过程中会不时的发生无法通过SCOPE_IDENTITY()来获取ID号的情况. 尝试着测试又发现不了问题. 今天 ...

  9. Windows下搭建论坛

    Windows下搭建论坛 真正的O基础架构,一步一步走向成功 转载请注明原作者出处 环境准备篇 安装集成包软件 解压后如下 以管理员身份运行setup的批处理 选择推荐的apache版本 选择推荐的m ...

  10. 桌面虚拟化之部署DDC-5.6

    1. 打开管理软件 2. 选择桌面部署 3. 如果没有数据库则使用默认的 4. 导入许可证文件(当然未申请可试用30天) 5. 主机类型选择无(这里未做服务器虚拟化) 6. 最后完成初步配置 配置计算 ...