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设计模式--命令模式
    linux 挂载windows盘
    C# 对含有向量偏移的明文进行AES加解密
    Vue修仙之旅之Vue初尝
    Cookie的Secure属性
    Webserver信息泄露的解决方案--使用StripHeaders模块删除不必要的header
    window自定义事件
    vue typescript .eslintrc.js
    css word-break: break-word;无效
    vscode vue 片段
  • 原文地址:https://www.cnblogs.com/langhua/p/4545258.html
Copyright © 2011-2022 走看看