我必须检查名为RESULT空白的特定列的值是否为空.
当我检查时if RESULT IS NULL,查询失败,但当我检查时RESULT='',它工作.
两者之间有什么区别.
请解释.
"UPDATE RLS_TP_2012_03 a, RLS_TP_2012_03 b SET a.COMMENT=b.COMMENT where b.TCODE='T1199' and a.GROUPNAME='xyz' and a.HLABNO=b.HLABNO and a.RESULT =''; ";
"UPDATE RLS_TP_2012_03 a, RLS_TP_2012_03 b SET a.COMMENT=b.COMMENT where b.TCODE='T1199' and a.GROUPNAME='xyz' and a.HLABNO=b.HLABNO and a.RESULT is NULL; "
Run Code Online (Sandbox Code Playgroud)
Ric*_*cky 26
NULL缺乏价值.空字符串是一个值,但只是空的.NULL对数据库来说是特殊的.
NULL已经没有界限,它可以用于string,integer,date等.在数据库中的字段.
NULL没有分配任何内存,stringwith NULL值只是一个指向内存中无处的指针.但是,尽管存储在存储器中的值是,但是,空IS被分配到存储器位置"".
在三值逻辑中,NULL应该用来表示“未知”或“不适用”,空列应该表示“已知但为空”。
有些 DBMS 产品并不总是遵循这个约定,但我认为它们是有缺陷的。是的,你知道你是谁,Oracle :-)
此外,虽然 NULL 可以放入任何列类型(not null暂时忽略子句),但不能将“空”值放入非字符字段(如integer)。