Java 使用db2格式化字符串中的数字,错误“0”;为varchar指定的参数数无效";

Java 使用db2格式化字符串中的数字,错误“0”;为varchar指定的参数数无效";,java,database,string,db2,format,Java,Database,String,Db2,Format,从我的db2中,我必须给出一个数字,例如: 1234.56 234 11:55 12323.88 和字符串格式: 1,234,56 234 11,55 12323.88 我试过: VARCHAR_FORMAT(VALUE(CASE WHEN X_Type='1' THEN Y_Type ELSE Y_Type*-1 END,0), '9G999D99', 'de_DE') as money 但是 我怎么做?另一个?我不太确定您要编写什么代码,但这个示例可能会有所帮助 SELECT

从我的db2中,我必须给出一个数字,例如:

1234.56
234
11:55
12323.88
和字符串格式:

1,234,56
234
11,55
12323.88
我试过:

VARCHAR_FORMAT(VALUE(CASE WHEN X_Type='1' THEN Y_Type ELSE Y_Type*-1 END,0), '9G999D99', 'de_DE') as money
但是


我怎么做?另一个?

我不太确定您要编写什么代码,但这个示例可能会有所帮助

SELECT
    VARCHAR_FORMAT(col, CASE WHEN X_Type='1' THEN Y_Type ELSE Y_Type || 'MI'  END, 'de_DE') as money
FROM
    TABLE(VALUES 
       ('1','999G999D99', -4324)
    ,  ('2','999G999D99', -4324)
    ) AS T(X_Type,Y_Type, col)
返回

MONEY      
-----------
  -4.324,00
  4.324,00-

我不太确定您要编写什么代码,但这个示例可能会有所帮助

SELECT
    VARCHAR_FORMAT(col, CASE WHEN X_Type='1' THEN Y_Type ELSE Y_Type || 'MI'  END, 'de_DE') as money
FROM
    TABLE(VALUES 
       ('1','999G999D99', -4324)
    ,  ('2','999G999D99', -4324)
    ) AS T(X_Type,Y_Type, col)
返回

MONEY      
-----------
  -4.324,00
  4.324,00-

对于运行在Linux/Unix/Windows上的Db2服务器,具有3个参数的varchar_格式要求第一个参数是日期或时间戳表达式(您的参数似乎是decfloat)。另外,请编辑您的问题,以指定运行在Linux/Unix/Windows上的Db2服务器的Db2服务器平台(Z/OS、i/series(as/400)或Linux/Unix/Windows)以及Db2服务器版本(请求帮助时必不可少),带有3个参数的varchar_格式要求第一个参数是日期或时间戳表达式(您的问题似乎是decfloat)。另外,请编辑您的问题以指定Db2服务器平台(Z/OS、i/series(as/400)或Linux/Unix/Windows)以及Db2服务器版本(请求帮助时必不可少)