SQL 中 NULL值测试代码

刚刚想从数据库中的表EXPERT_DETAILS中检索出修改人Modifier(类型 VARCHAR2(20),可为空)为空的那些记录,因为该字段的类型为VARCHAR2(20),我使用的SQL语句为


代码如下:

select * from expert_details twhere t.modifier = ''

没有检索出一条记录,而这与存储在该表中的记录是不相符的。后来想到即便是空字符型存储在数据库中也应该是NULL而不是''。

然后我使用下列SQL 语句,仍然没有检索出一条记录。


代码如下:

select * from expert_details t
where t.modifier = null

最后我想到了SQL中的NULL 值测试。使用如下语句,终于检索出了想要的结果。


代码如下:

select * from expert_details t
where t.modifier is null

在SQL语句中,where 子句:where t.modifier = null ,这里不可以使用NULL关键字,因为它不是一个真正的值,它仅仅是一个符号,因为它的值是未知的。当t.modifier本身就是null时,即where子句为:where null= null ,当等号两边的值都是未知的时候,结果是TRUE还是FALSE,SQL不能给出一个明确的结果,所以查询出的结果也为NULL。

因此必须明确使用NULL值测试即 字段 IS NULL 或者其否定形式 字段 IS NOT NULL 来检测NULL值。

(0)

相关推荐

  • SQL 中 NULL值测试代码

    刚刚想从数据库中的表EXPERT_DETAILS中检索出修改人Modifier(类型 VARCHAR2(20),可为空)为空的那些记录,因为该字段的类型为VARCHAR2(20),我使用的SQL语句为 复制代码 代码如下: select * from expert_details twhere t.modifier = '' 没有检索出一条记录,而这与存储在该表中的记录是不相符的.后来想到即便是空字符型存储在数据库中也应该是NULL而不是''. 然后我使用下列SQL 语句,仍然没有检索出一条记录

  • vue更改数组中的值实例代码详解

    根据下标更改时 vm为新建的vue对象 ind为数组 第一个e为在数组ind中e索引位置 第二个e为更改为值e vm.$set(vm.ind,e,e) 常规更改 arr为数组 //添加 arr.push(1); //删除 arr.splice(*,*); //替换 arr.splice(*,*,*); splice方法 实例 例子 1 在本例中,我们将创建一个新数组,并向其添加一个元素: <script type="text/javascript"> var arr = n

  • 解决Go语言数据库中null值的问题

    本文主要介绍如何使用go语言database/sql库从数据库中读取null值的问题,以及如何向数据库中插入null值.本文在这里使用的是sql.NullString, sql.NullInt64, sql.NullFloat64等结构体,为了方便书写,它们的泛指我会使用sql.Null***来表示 要点 从数据库读取可能为null值得值时,可以选择使用sql.NULL***来读取:或者使用IFNULL.COALESCE等命令让数据库查询值返回不为""或者NULL 若需要往数据库中插入

  • java正则替换sql中的参数实例代码

    目录 前言 要求: 分析: 代码: 测试: 总结: 前言 在处理sql参数的时候,替换圆括号里面只处理了一种情况.而没有从整体上进行处理!!! 这是一个思考问题上严重的偏向. 考虑问题时候,要先从整体开始考虑,逐步分解,再细分到局部! 要求: 替换sql里面的参数: SELECT a.table_id, a.table_title, a.table_name, a.table_serial, b.STAFF_NAME , b.REGION_NAME, b.operatingsystem, b.r

  • JS 去除Array中的null值示例代码

    复制代码 代码如下: function ClearNullArr(arr){ for(var i=0,len=arr.length;i<len;i++){ if(!arr[i]||arr[i]==''||arr[i] === undefined){ arr.splice(i,1); len--; i--; } } return arr; }

  • JS 获取span标签中的值的代码 支持ie与firefox

    ie支持outerText,firefox支持textContent 复制代码 代码如下: if (isIE) { var spanTest=document.getElementById('spanTest'); spanValue = spanTest.outerText; } else { spanValue = spanTest.textContent; }

  • 动态创建样式表在各浏览器中的差异测试代码

    复制代码 代码如下: <!doctype html> <head></head> <body> <span id="con">xxx</span> <script> var css = document.createElement('style'); css.setAttribute('type', 'text/css'); var cssText = 'span{color:Red;}'; if(cs

  • SQL 复合查询条件(AND,OR,NOT)对NULL值的处理方法

    NULL值影响查询条件的结果,并且结果很微妙. 以下是SQL中AND,OR,NOT的真值表. 表1    AND的真值表 TRUE FALSE NULL TRUE TRUE FALSE NULL FALSE FALSE FALSE FALSE NULL NULL FALSE NULL                                               表2    OR的真值表 TRUE FALSE NULL TRUE TRUE TRUE TRUE FALSE TRUE F

  • 在SQL中该如何处理NULL值

    在日常使用数据库时,你在意过NULL值么? 其实,NULL值在数据库中是一个很特殊且有趣的存在,下面我们一起来看看吧: 小伙伴想精准查找自己想看的MySQL文章?喏 → MySQL专栏目录 | 点击这里 在查询数据库时,如果你想知道一个列(例如:用户注册年限 USER_AGE)是否为 NULL,SQL 查询语句该怎么写呢? 是这样: SELECT * FROM TABLE WHERE USER_AGE = NULL 还是这样? SELECT * FROM TABLE WHERE USER_AGE

  • Oracle数据库中对null值的排序及mull与空字符串的区别

    order by排序之null值处理方法 在对业务数据排序时候,发现有些字段的记录是null值,这时排序便出现了有违我们使用习惯的数据大小顺序问题.在Oracle中规定,在Order by排序时缺省认为null是最大值,所以如果是ASC升序则被排在最后,而DESC降序则排在最前.所以,为何分析数据的直观性方便性,我们需要对null的记录值进行相应处理. 这是四种oracle排序中NULL值处理的方法: 1.使用nvl函数 语法:Nvl(expr1, expr2)     若EXPR1是NULL,

随机推荐