redshift:将Null字符串更新为NULL

时间:2020-07-31 01:39:18

标签: sql amazon-redshift

有一个带有“ 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吗?谢谢

1 个答案:

答案 0 :(得分:1)

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

根据我的理解

您有一个这样的表-

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

像这样的数据-

enter image description here

即以这种方式插入-

('abc',01),
('cde',02,'chemistry'),
('def',03,'')

所以rolnum = 1的{​​{1}}列为NULL-

subject

enter image description here

select * from dev.gp_test_20200731 where subject is null ,其中rolnum = 3列为subjectEmpty String-

''

enter image description here

现在我正在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) = ''

enter image description here

我无法重现此问题。

相关问题