博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
is [not] distinct from 的 null 比较
阅读量:6809 次
发布时间:2019-06-26

本文共 1255 字,大约阅读时间需要 4 分钟。

--在postgresql中经常会比较两个值相同或者不同,但如果比较表达中有一个为null则会比较头痛,如下:
postgres=# select null <> null ,null = null ,null is null,null is not null;
 ?column? | ?column? | ?column? | ?column? 
----------+----------+----------+----------
          |          | t        | f
 
--创建测试数据
postgres=# create table t (id int,name varchar(20));
CREATE TABLE
 
postgres=# insert into t values(1,'rudy');
INSERT 0 1
postgres=# insert into t values(2);       
INSERT 0 1
postgres=# select * from t;
 id | name 
----+------
  1 | rudy
  2 | 
(2 rows)
--expression如果为null与任何值比较,都为null
postgres=# select * from t where null <> name;
 id | name 
----+------
(0 rows)
--is distinct from 对与非null其意为<>
postgres=# select * from t where 'rudy' is distinct from name; 
 id | name 
----+------
  2 | 
--is distinct from 对于expression为null,其会让与null的对比为值,非null对比其本身为假,is distinct from本身比较其是否不同
postgres=# select * from t where null is distinct from name;
 id | name 
----+------
  1 | rudy
(1 row)
--is not distinct from 对与非null其意为=
postgres=# select * from t where 'rudy' is not distinct from name;
 id | name 
----+------
  1 | rudy
--is distinct from 对于expression为null,其会让与null的对比为值,非null对比其本身为假,is distinct from本身比较其是相同  
postgres=# select * from t where null is not distinct from name;
 id | name 
----+------
  2 | 
  
--注意  is [not] distinct from 效率上不如<>,=所以尽量要少用

转载地址:http://lfhwl.baihongyu.com/

你可能感兴趣的文章
I/O多路复用
查看>>
C# 简单封装一个XML文件读取类
查看>>
第四篇4.1章
查看>>
指针 && 双指针
查看>>
mysql 数据备份 crontab
查看>>
东鹏特饮占据市场第二的背后:数据让我们比谁都了解消费者!
查看>>
errno是否是thread safe的
查看>>
输入框正则表达式大全
查看>>
Android 三种动画详解
查看>>
函数指针和指针函数
查看>>
C#DateTime的用法
查看>>
好博客网址
查看>>
mysql表的操作
查看>>
小程序方法-小程序获取上一页的数据修改上一个页面的数据
查看>>
基于OpenGL编写一个简易的2D渲染框架-11 重构渲染器-Renderer
查看>>
eclipse 当中,小白们所不知道的 CRTL+1 快捷键
查看>>
gcc/g++ 如何支持c11/c++11标准编译
查看>>
jquery_EasyUI使用细节注意
查看>>
好的文章万里挑一
查看>>
JavaScript 继承
查看>>