我已经习惯了两个查询将一列更新为NULL:
update table_name
set col1 = NULL
where col2 = 'MUTHU';
update table_name
set col1 = ''
where col2 = 'MUTHU';
但是当我以前用函数NVL查询时,我得到两个查询的相同结果。
select nvl(col1, 'value') from table_name;
我的问题是:NULL和''之间的'差异'和'使用'是什么?
答案 0 :(得分:-1)
一个区别是null通常会传播,所以如果你用另一个字符串连接null:
create table t
(
col1 varchar(10),
col2 varchar(10),
col3 varchar(10)
);
insert into t values ( null, '', 'hello' ) ;
select
concat(col1 ,col3),
concat(col2 ,col3)
from t
>> NULL, 'hello'
答案 1 :(得分:-1)
''
表示该列的值为empty string
但NULL
表示“a missing unknown value”
所以NULL
无法与=, <=
进行比较等等