zoukankan      html  css  js  c++  java
  • T-sql isnull函数介绍

    今天在给同事调取数据的时候,同事反馈说数据偏少,我仔细检查,发现sql语句条件都正确,逻辑没哪里不对,最后经过仔细排查,才发现问题出在null字段上

    表中有一列是允许为null值,比如查询名字不为测试的商户名字的记录

    我的查询为 name<>'测试'为10行,

    select * from test name<>'测试'

    检查数据 name='测试' 有90行, 总记录120行,有20行既不满足<>'测试',也不='测试',这20行记录name都是null

    如下图所示,一看便明白:

    在数据表行记录中,数据列中经常会有记录为null,其实null值表示的是未知数据,即空,表示什么也没有,

    但不是我们所说的'',也不是表示数值0,而是表示未知数据。可以理解未知数据的点位符

    null值的处理方式与其他值不同

    null不能参与比较,因为是未知值,所以不能用在比较运算符后面,

    name<>null,name=null,都是不正确的,

    null值不能比较运算符,那怎么查询列值是null的呢,

    我们必须使用 IS NULL 和 IS NOT NULL 操作符,

    如查询名字为null 的用户

    --记录为null
    SELECT COUNT(1) null记录数 FROM dbo.Users u WHERE u .Name IS NULL

    查询名字不等于'aaaa'的用户记录:

    --正确的名字不等于'aaaa'
    SELECT * FROM dbo.Users u WHERE ISNULL(u.Name,'')<>'aaaa'

    实际上这里已经用到了isnull函数了,

    isnull函数有两个参数,第一参数是要计算的表达式,第二个是当第一个表达式值为空时的替代值。

  • 相关阅读:
    Java匹马行天下之JavaSE核心技术——工具类
    微信小程序
    在express3里用ejs模版引擎时,如何使其支持'.html'后缀
    node
    webstorm常用快捷键
    Meta标签中的format-detection属性及含义
    使用console进行 性能测试 和 计算代码运行时间
    JS获取浏览器URL中查询字符串的参数
    jspm 简介
    vue2.0 keep-alive最佳实践
  • 原文地址:https://www.cnblogs.com/langhua/p/4545258.html
Copyright © 2011-2022 走看看