我有一个表TABLE_A,它的所有列都是字符数据类型.让我们假设在其中一列中,我有如下值:

Column_A
<Blank_Value>
123
1,123

我必须将该值插入另一个表TABLE_B中,该表的COLUMN_A数据类型为Integer. 当我try 将列_A从TABLE_A插入到TABLE_B时,显然会因为数据类型不匹配而失败. 我在用这个

INSERT INTO TABLE_B SELECT CAST(COLUMN_A AS INTEGER) FROM TABLE_A;

此操作失败,因为Column_A的值为‘1,123’. 我try 首先替换值中的‘,’,然后使用以下命令转换数据类型

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;

Sql相关问答推荐

Postgresql在加入时显示重复的行

将SEMI JOIN、ANTI JOIN转换为非连接SQL

如何连接第二个表并将其内容输入到第一个表的单个字段中?

在Postgres中实现合并功能的干净方法,因为当目标/源不匹配时

有没有办法在Postgres中存储带有时区的时间戳,而不将其转换为UTC

Redshift PL/pgSQL循环中的参数化列名

在PostgreSQL中汇总连接表中的 case 值

使用与JOIN一起使用的查询后进行分页和排序

将用户授予另一个用户不授予权限

使用CTE在SNOWFLAKE中创建临时表

统计重复记录的总数

根据要过滤的列的值进行联接和分组

SQL 如何根据当前事件和下一个事件确定操作的持续时间?

Postgres存在限制问题「小值」

使用ALTER TABLE无法删除列

Django only() 和 values() 不适用于 prefetch_related()

以 15 分钟为间隔的使用情况SQL 查询

来自 SQL Server 的树层次 struct 图的 JSON

SQL:获取连接表的第一个项目

如何比较同一张表中的行并进行相应更新