首页 > 解决方案 > 即使在 Teradata SQL 助手中的零值上,如何实现 2 位小数?

问题描述

下面是 MS SQL Server 中的代码

FORMAT(CAST(a.[Sample_Column] as numeric(10,2)), 'C', 'en-US') 

我想在 Teradata 中实现相同的目标,为此我尝试了以下方法:

TRIM(TO_CHAR (cast(tmp."Sample_Column" as decimal(10,2)), '$99,999,999.00' ))

问题是当 Sample 列的值为“0”时,它在 Teradata 中填充“.00”。我希望将其填充为“0.00”。

标签: sql-serverteradatacurrencyteradata-sql-assistant

解决方案


您必须0在格式中指定以避免前导空格。

TRIM(TO_CHAR (cast("Sample_Column" as decimal(10,2)), '$999,999,990.00'))

如果"Sample_Column"是数字,则不需要 CAST:

TRIM(TO_CHAR ("Sample_Column", '$999,999,990.00'))

可以使用 NLS_PARAMS 提供货币符号:

TRIM(TO_CHAR ("Sample_Column", 'L999,999,990.00', 'NLS_CURRENCY = ''$'''));

推荐阅读