this post中有Postgresql的解决方案。但是,我需要它用于Redshift。为postgresql提出的解决方案不适用于redshift,因为它说:列不存在。有什么工作吗?
假设:
SELECT * FROM t;
┌────────┬────────┐
│ f1 │ f2 │
├────────┼────────┤
│ (null) │ 1 │
│ 2 │ (null) │
│ (null) │ (null) │
│ 3 │ 4 │
└────────┴────────┘
(4 rows)
预期结果:
┌────────┬────────┐
│ f1 │ f2 │
├────────┼────────┤
│ (null) │ 1 │
│ 2 │ (null) │
│ (null) │ (null) │
└────────┴────────┘
(3 rows)
答案 0 :(得分:0)
您可以将所有列转换为varchar,连接并检查结果值是否为null。如果行中的任何值为null,则整个连接结果将为null。就像这样:
select *
from your_tablename
where col_1::varchar||col_2::varchar||col_3::varchar is null