Amazon redshift 红移-检查where子句中的Db Null

Amazon redshift 红移-检查where子句中的Db Null,amazon-redshift,where-clause,dbnull,Amazon Redshift,Where Clause,Dbnull,我正在尝试筛选一个具有DB null的列。我试图了解如何将where子句中的以下两个条件(检查标记为type的列)合并为一个条件 select * from table where type in ('Type_1','Type_4') or type is null 您可以考虑在列中肯定看不到的值,如“未定义”或“未指定”,并在coalesce函数中使用该值,如下所示: 在('type_1'、'type_4'、'not specified')中合并(type,'notspecified')

我正在尝试筛选一个具有DB null的列。我试图了解如何将where子句中的以下两个条件(检查标记为type的列)合并为一个条件

select * from table
where type in ('Type_1','Type_4') or type is null

您可以考虑在列中肯定看不到的值,如“未定义”或“未指定”,并在
coalesce
函数中使用该值,如下所示:

在('type_1'、'type_4'、'not specified')中合并(type,'notspecified')


但老实说,我看不出这样做的理由——只是以微小的性能损失为代价的语法糖分

您可以考虑在列中肯定看不到的值,如“未定义”或“未指定”,并在
合并
函数中使用该值,如下所示:

在('type_1'、'type_4'、'not specified')中合并(type,'notspecified')


但老实说,我不认为这样做有什么理由——只是为了提高语法质量而牺牲了一点点性能

我不认为有任何理由重构WHERE子句,与字符串列表和检查null是两个不同的标准相比。我不认为有任何理由重构WHERE子句,与字符串列表比较和检查空值是两个不同的标准。