Ibm midrange AS400 WRKQRY串联十进制

Ibm midrange AS400 WRKQRY串联十进制,ibm-midrange,Ibm Midrange,在WRKQRY>Define Result Fields中,当试图连接两个字段(其中一个字段包含十进制数)时,会引发错误 如何获得要连接的十进制值 DSICF=.400 DSIUM=MG Field Expression Column Heading DOSE DSICF||DSIUM DOSE 值不允许与连接运算符一起使用 在研究之后,IBM声明,如果表达式中的

在WRKQRY>Define Result Fields中,当试图连接两个字段(其中一个字段包含十进制数)时,会引发错误

如何获得要连接的十进制值

DSICF=.400

DSIUM=MG

Field       Expression                         Column Heading       
DOSE        DSICF||DSIUM                       DOSE
值不允许与连接运算符一起使用

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

还在研究

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

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

最好将不受支持且过时的i产品查询转移到基于SQL的解决方案

IBM希望您使用WebQuery

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

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

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

最好将不受支持且过时的i产品查询转移到基于SQL的解决方案

IBM希望您使用WebQuery


但是查询管理器(STRQM)是一个5250工具,它甚至可以读取和执行查询/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

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

范例

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