我有一个表 TABLE_A,其中所有列均为 CHARACTER DATATYPE。假设在其中一列中我有这样的值:
Column_A
<Blank_Value>
123
1,123
我必须将此值插入到另一个表 TABLE_B 中,该表的 Column_A 数据类型为整数。 当我尝试将 COLUMN_A 从 TABLE_A 插入到 TABLE_B 时,显然由于 DATATYPE 不匹配,它会失败。 我正在用这个
INSERT INTO TABLE_B SELECT CAST(COLUMN_A AS INTEGER) FROM TABLE_A;
此操作失败,因为 COLUMN_A 的值为“1,123”。 我尝试首先替换值中的“,”,然后使用下面的方法转换数据类型
INSERT INTO TABLE_B SELECT CAST(REPLACE(COLUMN_A,',','') AS INTEGER) FROM TABLE_A;
这适用于 , 值,但现在问题出在空白值上。我应该如何使用查询来替换逗号值,将字符数据类型转换为整数并且还可以处理空白值。
我猜你那里有一个0。
Netezza 支持
CASE WHEN
所以你的查询看起来像这样
INSERT INTO TABLE_B
SELECT CAST(REPLACE(
CASE WHEN COLUMN_A = '' THEN 0 ELSE COLUMN_A END ,',','') AS INTEGER)
FROM TABLE_A;