zoukankan      html  css  js  c++  java
  • SQL学习之空值(Null)检索

    在创建表表,我们可以指定其中的列包不包含值,在一列不包含值时,我们可以称其包含空值null。

    确定值是否为null,不能简单的检查是否=null。select语句有一个特殊的where子句,可用来检查具有null值的列。这个where子句是IS NULL子句。

    select * from T_Check_InfoDetail 得到如下视图:

    这个时候我们需要检索CheckValueString列为NULL值,ResultRemarks(该字段为空的记录)

    我会这么写代码

    select * from T_Check_InfoDetail where CheckValueString = null and ResultRemarks=''

    然后控制台报错:

    数据类型 text 和 varchar 在 equal to 运算符中不兼容。

    查了下说:text类型查询时不支持=,可以支持like,nvarchar(max)数据类型是新类型,长度与text相等
    操作text类型的函数很特殊,所以自新版本以来,一般大数据类型都定义为max,弃用text,只能datalength(字段名这里是(ResultRemarks))=0判断它的长度是否为0来判断这个字段是否为空!

    所以代码改成这样的:

    select * from T_Check_InfoDetail where CheckValueString = null and datalength(ResultRemarks)=0

    结果还是什么都没有,这个时候查了下资料发现,null值zai数据库里面有特殊意义,它与字段包含0、空字符串、或仅仅包含空格不同。

    所以判断字段是否为空,必须也要使用特殊的where子句 is NULL,代码如下:

    select * from T_Check_InfoDetail where CheckValueString is null and datalength(ResultRemarks)=0

    ok!

  • 相关阅读:
    主机连接不上虚拟机或虚拟机桥接没有网络
    asp web 报表
    heart or house?
    CPointer
    Raid
    Dos for by 随风
    不支持uri格式
    FabEdge V0.4 新特性:支持多集群通讯
    运维监控
    /etc缩写
  • 原文地址:https://www.cnblogs.com/GreenLeaves/p/5810030.html
Copyright © 2011-2022 走看看