`
iihero
  • 浏览: 248471 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

也来说说SQL语句中NULL的真实含义

阅读更多

NULL,表示不明确、未知的列值

测试表:testnull(id varchar(32))

数据库:Sybase ASA11.0

行数据(''), (NULL)

数据库选项ansinull为true(也是ASA数据库的默认选项)时,

select * from testnull where id = null

select * from testnull where id != null

结果均为空

select * from testnull where idis null

结果为(NULL)

select * from testnull where idis notnull

结果为('')

当ansinull为false时,

select * from testnull where id = null

结果为(NULL)

select * from testnull where id != null

结果为('')

从上述结果来看,NULL值确实是一个有争议的东西,但是,毫无疑问,ansinull对NULL的定义是精确的,即不能对NULL值进行等于或不等判断,无论是等还是不等,其结果都为false.

而统一的is null, is not null的含义则显然是明确的,NULL is null恒为真,非NULL is null恒为假。

再看看在Oracle中的结果:

SQL> select * from testnull where id is null;

ID
--------------------------------

SQL> select * from testnull where id is not null;

no rows selected

SQL> select * from testnull where id=null;

no rows selected

SQL> select * from testnull where id != null;

no rows selected

空字符串''在oracle中被示为NULL值了。比较怪异。

Oracle这种现象的重现过程如下:

SQL> create table testnull(id varchar(32));

Table created.

SQL> insert into testnull values('');

1 row created.

SQL> select * from testnull where id is null;

ID
----------------------------------------------------------------


SQL> select count(*) from testnull where id is null;

COUNT(*)
----------
1

SQL>

分享到:
评论

相关推荐

    SQL语句集锦.rar

    动态SQL语句.txt 动态语句.txt 区分大小写.txt 去掉重复的列名.txt 取n到m条记录.txt 合并字符串.txt 多列的行转列.sql 多行补充.sql 多表对多表进行统计.txt 大小写转换.txt 子查寻和内联查寻.txt 学生名次.txt ...

    经典SQL语句大全

    10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1...

    sql 语句中的 NULL值

    sql 语句中的 NULL值 ,需要的朋友可以看看。

    用于生成数据字典的SQL语句

    /*SQL Server数据库字典(查询所有的表结构)*/ SELECT TOP 100 PERCENT --a.id, CASE WHEN a.colorder = 1 THEN d.name ELSE '' END AS 表名, CASE WHEN a.colorder = 1 THEN isnull(f.value, '') ELSE '' END AS ...

    Sql 语句详解

    全网最全的SQL 讲解,带实例描述 目录概要: 1. SQL 简介 3 2. SQL 语法 4 3. SQL SELECT 语句 5 4. SQL WHERE 子句 7 5. SQL AND & OR 运算符 8 6. SQL ORDER BY 子句 9 ...25. SQL NOT NULL 约束 31 ……

    如何获得PreparedStatement最终执行的sql语句

    NULL 博文链接:https://huiminchen.iteye.com/blog/1097332

    优化sql语句执行效率几点注意事项

    优化sql语句执行效率几点需要注意的事项

    sql语句大全

    例如下面语句查询年龄大于20的数据: SELECT * FROM usertable WHERE age>20 WHERE子句可包括各种条件运算符: 比较运算符(大小比较):>、>=、=、<、、、!>、!< 范围运算符(表达式值是否在指定的范围):BETWEEN…AND...

    mybatis直接执行sql语句后续之一

    NULL 博文链接:https://benworld.iteye.com/blog/1841031

    null关系型数据库及SQL语句,SQLSERVER数据库设计.doc

    null关系型数据库及SQL语句,SQLSERVER数据库设计.doc

    SQL语句实例讲解

    例 1 对于表的教学管理数据库中的表 STUDENTS ,可以定义如下: CREATE TABLE STUDENTS (SNO NUMERIC (6, 0) NOT NULL SNAME CHAR (8) NOT NULL AGE NUMERIC(3,0) SEX CHAR(2) BPLACE CHAR(20) PRIMARY KEY...

    LINQ to SQL语句(14)之Null语义和DateTime

    LINQ to SQL语句(14)之Null语义和DateTime

    通过分析SQL语句的执行计划优化SQL(总结)

    NULL 博文链接:https://huangtut.iteye.com/blog/285494

    经典Sql语句大全(本资源基本涵盖了sql中的经典用法)

    本资源基本涵盖了sql中的经典用法 3、说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始 备份 BACKUP DATABASE ...

    经典全面的SQL语句大全

     其次,大家来看一些不错的sql语句  1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)  法一:select * into b from a where 1<>1  法二:select top 0 * into b from a  2、说明:拷贝表(拷贝...

    LINQ to SQL手册

    LINQ to SQL语句(14)之Null语义和DateTime LINQ to SQL语句(15)之String LINQ to SQL语句(16)之对象标识 LINQ to SQL语句(17)之对象加载 LINQ to SQL语句(18)之运算符转换 LINQ to SQL语句(19)之ADO.NET与LINQ to ...

    经典SQL语句

    create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col...

    数据库SQL语句讲解.pptx

    数据库SQL语句讲解全文共112页,当前为第1页。 回顾 添加各种约束一般在什么时候完成? 可以在创建表的时候添加 也可以在表创建完成以后添加。 SQL Server中约束包括哪些? 空值(NULL)约束 主键(PRIMARY KEY)...

    SQL语句学习手册实例.chm

    SQL语句学习手册实例SQL语句学习手册实例

    2020尚硅谷 谷粒商城 建表sql语句

    0-否 1-是】,在sku中仍然可以调整', primary key (attr_id) ); alter table pms_attr comment '商品属性'; /*==============================================================*/ /* Table: pms_attr_attrgroup_...

Global site tag (gtag.js) - Google Analytics