Sql server 为什么SQL语言使用的是NULL或notnull而不是=NULL或<&燃气轮机;无效的
我主要有应用开发背景。在编程语言中Sql server 为什么SQL语言使用的是NULL或notnull而不是=NULL或<&燃气轮机;无效的,sql-server,tsql,Sql Server,Tsql,我主要有应用开发背景。在编程语言中variable==null或variable!=空有效 对于SQL,下面的查询不会给出任何语法错误,但也不会返回正确的结果 select SomeColumn from SomeTable where SomeNullableColumn=null select SomeColumn from SomeTable where SomeNullableColumn<>null 为空或不为空而不是=null或为空的原因/要求是什么 这是ANSI SQ
variable==null
或variable!=空
有效
对于SQL,下面的查询不会给出任何语法错误,但也不会返回正确的结果
select SomeColumn from SomeTable where SomeNullableColumn=null
select SomeColumn from SomeTable where SomeNullableColumn<>null
为空
或不为空
而不是=null
或为空
的原因/要求是什么
这是ANSI SQL还是Microsoft的TSQL标准?因为
null
不等于null
,就像NaN
(“不是一个数字”,例如,当0除以0或提升到0的幂)不等于NaN
。考虑<代码> null <代码>作为一个未知值(未知值不一定等于某个未知值)。< P>因为SQL是基于集合论和谓词逻辑的。这两个强大的数学基础包含数学逻辑-布尔代数
。在该逻辑中存在三个值-TRUE、FALSE和UNKNOWN(=NULL)
使用Is null
代替=null
来分隔逻辑。为什么是ANSI标准?这是为了使它更具可读性,并分离三值逻辑
在通用数据仓库中,null被“”替换,以使qry更简单
或者尝试
SET ANSI_NULLS OFF
选项。因为NULL
不是值,这意味着没有值。你不能将某物与无进行比较。可能是重复的是重复的
select SomeColumn from SomeTable where SomeNullableColumn is null
select SomeColumn from SomeTable where SomeNullableColumn is not null