• SqlServer2005 查询 第六讲 null


    今天们来讲sql命令中的这个null参数

    null

    • null: 可以理解成【没有值,空值】的意思

    注意以下几点

    • --1、零和null是不一样的,null表示空值,而零表示的一个确定的值
      --2、null不能参与的运算 <> , != , =
      --3.null可以参与的运算符是is ,not is

    例如

    • 这里所有的操作都是在scott(库)中的emp表做演示
      comm 表示的是emp表中的这个奖金字段。
    select * from emp where commm <> null;    //-- 错误
    select * from emp where comm != null;   //--错误
    select * from emp where comm  = null;    //-- 错误
    select * from emp where comm is null;    //--正确,表示的是输出奖金为空的员工的信息
    select * from emp where comm not is null; //-- 正确,表示的是输出奖金不为空的员工的信息
    
    • 4.任何数据类型都允许为null
      eg:
    create table test(name nvarchar(20),
                       cnt int,
                       ridi datetime)
    
    insert into test values(null,null,null)   //这些都是成立的,所以任何类型都允许为空。
                                              //这些比较好理解的东西,我就不用图片进行展示了
    
    • 5、任何数字与null参与数学运算结果永远是null
      eg:
      请输出每个员工的年薪【这里的年薪的算法等于sal(月薪)*12+comm(奖金)】
      注意我们的emp表中comm(奖金)这一个字段的值有null(空值)
                               // --我们先来演示一个错误的sql命令的写法
    select comm,sal*12+comm “年新” from emp
                               //-- 这时我们会发现comm为null的字段,年薪这个计算列的字段就会为null(空值)
                               //-- 所以任何数字与null参与数学运算结果永远是null
                             
    

    下面这个图片是上面这条sql命令所执行的结果

    那么这个题的sql命令应该怎么写呢

     select comm,sal*12+isnull(comm,0) "年薪" from emp  
                 // -- isnull(comm,0)表示的是如果comm是null,就返回零否者返回comm的值。
    
    
    

    下面这个图片是上面这条sql命令所执行的结果

    从图中可以看见不管comm(奖金)这个字段的值是否为空,这个计算列的年薪字段都有值
    今天这一讲就到这里,下一讲我们来说 order by
    如果还有什么不懂的,可以加我qq485536603

  • 相关阅读:
    一步步学敏捷开发:4、Scrum的3种角色
    一步步学敏捷开发:3、如何写用户故事
    一步步学敏捷开发:5. Scrum的4种会议
    一步步学敏捷开发:1、敏捷开发及Scrum介绍
    用户故事(User Story)
    对敏捷开发的一点理解
    Java学习之Iterator(迭代器)的一般用法 (转)
    希尔排序
    递归全排列字符串
    Java中equals和==的区别
  • 原文地址:https://www.cnblogs.com/zjlk/p/11877180.html
Copyright © 2020-2023  润新知