AS400 Define Query Results字符字段转数值并执行计算的实现方法
WRKQRY下字符型数值转数值并累加的实现方案
无需修改原PF物理文件结构,直接通过WRKQRY的结果字段计算功能即可实现需求,具体操作步骤如下:
- 进入你当前编辑的查询,选择定义结果字段菜单进入新增字段页面
- 第一步新建临时转换字段,可命名为
TMP_NUM,字段类型设置为数值型,推荐长度设为5、小数位设为2,字段表达式按你的AS400版本选择:- 新版本(支持内置替换函数):填写
VAL(REPLACE(原字符字段名, ',', '.')),先将字符中的逗号替换为标准小数点,再通过VAL函数将字符内容转换为数值格式,得到0.25的数值结果 - 低版本兼容方案:填写
INT(SUBSTR(原字符字段名,1,POSSTR(原字符字段名,',')-1)) + DEC(SUBSTR(原字符字段名,POSSTR(原字符字段名,',')+1,2),2,2)/100,手动拆分整数、小数部分合并为数值
- 新版本(支持内置替换函数):填写
- 第二步新建最终结果字段,可命名为
FINAL_RESULT,字段类型同样设置为数值型,长度和小数位按需调整,字段表达式填写TMP_NUM + 1.0即可,若你的系统区域设置使用逗号作为小数分隔符,直接写TMP_NUM + 1,0,计算后即可得到1.25(或1,25)的数值结果
注意事项:
- 若原字符字段存在非数字+逗号的异常值,
VAL函数会返回0,可额外添加条件判断过滤异常数据- 结果字段的长度、小数位可根据实际业务需要调整,避免数值溢出
内容的提问来源于stack exchange,提问作者As4rikru
相关产品推荐
相关产品推荐

