数字字段上的 AS400 千分隔符

AS400 thousand delimiter on numeric field

有没有一种方法可以让数字以逗号表示千位数字?

根据 IBM 文档,语法如下:

DECIMAL(:newsalary, 9, 2, ',')

newsalary 是字符串(字段) 9是精度 2是规模 , 是分隔符。

我试过了:

SELECT DECIMAL ( T1.FIELD1 , 15 , 2 , "," ) AS TOTAL FROM TABLE T1

尝试时,出现以下错误:

Message: [SQL0171] Argument 4 of function DECIMAL not valid.

DECIMAL 将字符串类型转换为数字类型。

数字类型没有分隔符;只有数字的字符表示有分隔符。

您使用的是什么工具 STRSQL、运行 SQL 脚本或其他工具?将字符串转换为数字后,该工具应在显示数字数据时添加适合语言的分隔符。例如,在 STRSQL:

select decimal('12345.67', 12,2) as mynum
from sysibm.sysdummy1                    

Returns:

       MYNUM
   12,345.67

使用SQL 格式化字符串通常不是一个好主意。这应该留给任何消耗数据的人。

但是如果你真的、真的、真的想做的话。您应该创建一个用户定义函数 (UDF) 来为您执行此操作。这是一篇文章 Make SQL Edit the Way You Want It To,其中包含用 ILE RPG 编写的 EDITDEC 函数的源代码以及您需要在 SQL 语句中使用它的 SQL 函数定义。