在 Cloudera 中将 0 更改为 NULL

Change 0 to NULL in Cloudera

我正在寻找一种解决方案,将变量的所有属性从 0 值更改为 NULL,反之亦然,以保持数据集一致 例如:

everyday_banking
0
NULL
NULL
NULL
0
0
0
0
0
0
0
0
0
0
0
NULL
NULL
NULL

如何在创建 table 语句中完成,因为我有很多

CREATE TABLE new
AS SELECT 
customer_number, 
everyday_banking, 
insurance
from old;

使用 Cast 或者在 Cloudera 中需要如何完成?

您可以为此使用更新语句,在您创建并填充 table 之后。要将所有 NULL 替换为零,您可以尝试:

UPDATE new
SET everyday_banking = COALESCE(everyday_banking, 0);

要用 NULL 替换零,请使用 CASE 表达式:

UPDATE new
SET everyday_banking = CASE WHEN everyday_banking = 0 THEN NULL END;

试试这个:

CREATE TABLE new AS SELECT customer_number, COALESCE(everyday_banking,0), insurance from old;