【发布时间】:2022-06-10 20:17:31
【问题描述】:
我想将 DB2 SQL 中带有 ',' 逗号小数分隔符的双值列转换为 '.'点小数分隔符。我的本地设置是德语。由于涉及许多应用程序,我无法更改数据库设置。
例如:列值 =0,81234 我希望它显示为 0.81234。
SELECT CAST(CAST(COLUMNNAME AS DECIMAL(8,2)) AS VARCHAR(25))
我尝试先将其转换为 decimal(8,2),然后再转换为 varchar。这导致 0.81(如预期的那样带有“.”)。但我需要小数点分隔符右边的所有数字,如 0.81234。所以,我尝试使用小数(7,6),结果为SQL0413N OVERFLOW OCCURRED DURING NUMBER DATA TYPE CONVERSION error.
还有其他方法可以将小数点分隔符显示为“.”吗?
【问题讨论】:
-
decimal(7,6)表示总共 7 位数字,其中 6 位是小数。例如。 1.234567. -
谢谢,我改成更高的数值了。查询运行良好。对于某些值,例如: 10 ,它显示为 10.000000。现在我希望这些值修剪尾随零并仅显示为 10。当值为 12.345000 时,则为 12.345
-
你不能让表示层处理这个吗?
-
遗憾的是,结果被导出并直接通过 FTP 传输到完成计算的另一层。因此,想在 SQL 代码本身中实现一个逻辑。
-
该层真的担心尾随的十进制 0 吗?
标签: sql db2 decimal implicit-conversion separator