Sql 在Cloudera中将0更改为NULL
我正在寻找一种解决方案,将变量的所有属性从0值更改为NULL值,或者反之亦然,以保持数据集的一致性 例如:Sql 在Cloudera中将0更改为NULL,sql,cloudera-cdh,Sql,Cloudera Cdh,我正在寻找一种解决方案,将变量的所有属性从0值更改为NULL值,或者反之亦然,以保持数据集的一致性 例如: everyday_banking 0 NULL NULL NULL 0 0 0 0 0 0 0 0 0 0 0 NULL NULL NULL 如何在CREATETABLE语句中实现这一点,因为我有很多这样的语句 CREATE TABLE new AS SELECT customer_number, everyday_banking, insurance from old; 使用C
everyday_banking
0
NULL
NULL
NULL
0
0
0
0
0
0
0
0
0
0
0
NULL
NULL
NULL
如何在CREATETABLE语句中实现这一点,因为我有很多这样的语句
CREATE TABLE new
AS SELECT
customer_number,
everyday_banking,
insurance
from old;
使用Cast或在Cloudera中需要如何执行此操作?在创建并填充表之后,您可以使用update语句来执行此操作。要将所有空值替换为零,您可以尝试:
UPDATE new
SET everyday_banking = COALESCE(everyday_banking, 0);
要将零替换为NULL,请使用大小写表达式:
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;