前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL学习之空值(Null)检索

SQL学习之空值(Null)检索

作者头像
郑小超.
发布2018-01-24 15:10:59
1.7K0
发布2018-01-24 15:10:59
举报
文章被收录于专栏:GreenLeavesGreenLeaves

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

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

select * from T_Check_InfoDetail 得到如下视图:

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

我会这么写代码

代码语言:javascript
复制
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来判断这个字段是否为空!

所以代码改成这样的:

代码语言:javascript
复制
select * from T_Check_InfoDetail where CheckValueString = null and datalength(ResultRemarks)=0

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

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

代码语言:javascript
复制
select * from T_Check_InfoDetail where CheckValueString is null and datalength(ResultRemarks)=0

ok!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-08-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档