从不正确连接的 Teradata 列中删除尾随句点

Removing a trailing period from improperly joined Teradata column

我有一个我继承的 Teradata table,但格式不正确。

ID
123456789.
234567890.

我试过:

TRIM(new_card_srgt_id (FORMAT 'Z(17)9')) 

但是我的 Teradata 版本出现了一个有趣的错误:

Format string has combination of numeric, character, and GRAPHIC values.

欢迎提出任何建议。

更新:使用 TRIM(ID 尾随 '.')的建议在我投射时导致数字溢出。任何其他修复方法。

解决方法:

cast(TRIM(从 ID 尾随 '.') as decimal(18,0))

当您在不指定格式的情况下将数据从十进制字段加载到字符字段时,teradata 会进行类型转换。它本质上添加了“。”尾随值。

如果 ID 字段是 char 并且它已经包含“.”并且您想将其提取为不带“。”的十进制那么语法如下

SELECT cast(id as decimal(15,0)) form table;

如果 ID 字段是十进制并且您想将其提取为不带“.”的字符那么语法如下

SELECT  TRIM(ID (FORMAT 'ZZZZZZZZZZZZZ9')) from table;