在 Netezza SQL 中将字符数据类型转换为整数数据类型

问题描述 投票:0回答:1

我有一个表 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;

这适用于 , 值,但现在问题出在空白值上。我应该如何使用查询来替换逗号值,将字符数据类型转换为整数并且还可以处理空白值。

sql database netezza
1个回答
0
投票

我猜你那里有一个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;
© www.soinside.com 2019 - 2024. All rights reserved.