Sql 红移:将空字符串更新为空字符串

Sql 红移:将空字符串更新为空字符串,sql,amazon-redshift,Sql,Amazon Redshift,有一个带有“列a”的红移表 以下查询将以“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”字符串替换为N

有一个带有“列a”的红移表

以下查询将以“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?谢谢

如果我不明白你的问题,请纠正我

据我了解

你有这样的桌子吗-

create table dev.gp_test_20200731
(
name varchar(100) NOT NULL,
rolnum int ,
subject varchar(100) null
);
像这样的数据-

create table dev.gp_test_20200731
(
name varchar(100) NOT NULL,
rolnum int ,
subject varchar(100) null
);

i、 我是这样插的-

('abc',01),
('cde',02,'chemistry'),
('def',03,'')
因此,
rolnum=1
,将
subject
列设为NULL-

select * from dev.gp_test_20200731 where subject is null

&
rolnum=3
,将
主题
列作为
空字符串
'
-

现在,我正在
rolnum=3
上运行更新查询,其中
subject
列为
empty string
-

update dev.gp_test_20200731 set subject = null  where lower(subject) = ''
结果-

select * from dev.gp_test_20200731 where subject is null


我无法复制此问题。

打字错误。刚刚更正了描述。它们是同一列。谢谢可能该列已声明为
非空
。很抱歉投票迟到!我出去度假了!感谢您回答@Golokesh
select * from dev.gp_test_20200731 where subject is null