空字符串与NULL

nis*_*inn 10 sql sql-server null cells

我有一张表,其中一些行有一些空白cells.我尝试使用IS NULL函数选择这样的行.但查询选择0行.

select * from zzz_fkp_registration_female where fname is null;
(0 row(s) affected)
Run Code Online (Sandbox Code Playgroud)

现在我将查询更改为:

select * from zzz_fkp_registration_female where fname is null or fname ='';
Run Code Online (Sandbox Code Playgroud)

我得到了理想的结果.

为什么IS NULL没有给出结果?是什么区别IS NULL,并''由于细胞是空的.请解释.

sag*_*agi 13

他们之间的一些差异:

  • NULL 可以分配给任何类型,而不是与日期/数字字段不兼容的空字符串.
  • NULL 是一个UNKNOWN值,它没有值而不是空字符串,这是一个值,但是为空值.
  • 据我所知,NULL不应该捕获内存而不是空字符串.
  • null = null将导致null相反的''=''结果TRUE.