有一个带有“ column_a”的红移表
column_a varchar(1000) null,
以下查询将以'Null'字符串返回很多结果
select column_a from table where lower(column_a)='Null' limit 100;
但如果我这样做
update table set column_a = NULL where lower(column_a)='';
我收到一条错误消息
Cannot insert a NULL value into column binhash
反正我可以将'Null'字符串替换为NULL吗?谢谢
答案 0 :(得分:1)
如果我不明白您的问题,请纠正我。
根据我的理解
您有一个这样的表-
create table dev.gp_test_20200731
(
name varchar(100) NOT NULL,
rolnum int ,
subject varchar(100) null
);
像这样的数据-
即以这种方式插入-
('abc',01),
('cde',02,'chemistry'),
('def',03,'')
所以rolnum = 1
的{{1}}列为NULL-
subject
&
select * from dev.gp_test_20200731 where subject is null
,其中rolnum = 3
列为subject
或Empty String
-
''
现在我正在select * from dev.gp_test_20200731 where subject = ''
上运行更新查询,该查询的rolnum=3
列为subject
。或者在您的情况下,它将是字符串'NULL'-
empty string
结果-
update dev.gp_test_20200731 set subject = null where lower(subject) = ''
我无法重现此问题。