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!

  • 相关阅读:
    Python——读取大文件(GB)
    Flask——实现上传功能
    Python-模块XlsxWriter将数据写入excel
    Python-利用xlrd模块操作excel
    并发环境下,先操作数据库还是先操作缓存?
    深入浅出了解CDN
    Python——格式化GMT时间
    Python——数据库like模糊查询
    全面了解HTTP和HTTPS
    Http-请求过程
  • 原文地址:https://www.cnblogs.com/GreenLeaves/p/5810030.html
Copyright © 2011-2022 走看看