sql-server - 即使在 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”。
解决方案
您必须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 = ''$'''));
推荐阅读
- spring - 如何将 crawler4j 数据发送到 CrawlerManager?
- guzzle - 将额外参数传递给八点/guzzle 客户端类(Symfony 4)
- c - C - 带结构的混合 Qsort(字符串和双精度)
- azure - 每 3 天运行一次 Azure Function
- android - AppInventor 2:按比例调整图像(画布)的大小以填充空间
- php - WooCommerce 批量更新/创建 webhook 不起作用
- file - jmeter 仅以 PDF 格式下载所有文件,即使所有文件都不是 PDF 格式
- java - OkHttp 加载签名证书
- python - ModuleNoFoundError:尝试运行 Flask 应用程序时没有名为“stuff”的模块异常
- javascript - 无法使用 jQuery 设置多个属性