AS400 WRKQRY 连接十进制



在 WRKQRY>定义结果字段在尝试连接两个字段(其中一个字段包含小数(时引发错误。

如何获取带有小数的值进行连接?

DSICF = .400

DSIUM = MG

Field       Expression                         Column Heading       
DOSE        DSICF||DSIUM                       DOSE

不允许使用串联运算符的值。

在进行研究后,IBM 声明如果表达式中的任何字段是双字节字符集 (DBCS(-graphic,则表达式中的所有字段或常量都必须是 DBCS-graphic。

仍在研究。

DIGITS(( 似乎是 Query for i 支持数字到字符转换的唯一运算符。 我怀疑它不会给你你想要的...

CHAR((和 VARCHAR(( 适用于日期、时间和时间戳...

最好将不受支持且过时的 Query for i 产品迁移到基于 SQL 的解决方案。

IBM 希望您使用 WebQuery...

但是查询管理器(STRQM(是一个5250工具,甚至可以读取和执行Query/400查询。 在提示模式下,它类似于 Query/400,但具有 SQL 的所有功能。

必须先将带有小数的数字字段转换为字符串。但是,您在此转换中丢失了小数。为了添加回小数点,您必须解析字符串并手动连接小数。

DCIFC = 0.400
DCIUM = MG
Field           Expression
CNVRTUNIT        digits(DCIFC)  //Converts .400 to 0000000400 
NEWUNIT         substr(CNVRTUNIT,7,1)||'.'||substr(CNVRTUNIT,8,2)||'/'||DCIUM
-----
NEWUNIT now equals 0.400/MG

最新更新