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!

  • 相关阅读:
    通道的理解
    系统安装-老毛桃
    ppt文字变图形
    关于android出现不能下载相关依赖包,解决办法
    关于字体图标的问题
    初始化小程序的第一个问题
    css盒子垂直居中的5种方式
    关于网页图标的引用--bootstrap4和ElementUI
    安装vue-cli缓慢问题
    基于SSM在线考试系统的核心功能,随机组卷的实现
  • 原文地址:https://www.cnblogs.com/GreenLeaves/p/5810030.html
Copyright © 2011-2022 走看看