为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8
【操作系统】:
【CPU】:
【问题描述】*:
同一个SQL语句,不同的DM库,一个能执行,一个提示字符串转换出错。什么原因?
select MAX(cast(SUBSTR(WJBH, LENGTH(WJBH) - 3, 4) AS INTEGER)) as maxnum from wjbgsqwjdtb where WJBH like 'S%'
这是我的表结构和数据
SJ_BEIYUAN-wjbgsqwjdtb.sql
先查一下这个计算后substr,有非数字
表里面的数据某一行甚至多行有不规则数据
您看看这个写法能否满足需要
SELECT
max(cast(SUBSTR(WJBH, LENGTH(WJBH) - 3, 4) as integer))
FROM SJ_BEIYUAN."wjbgsqwjdtb"
WHERE WJBH LIKE 'S%'
and REGEXP_LIKE(SUBSTR(WJBH, LENGTH(WJBH) - 3, 4), '^\d+$');
两个库的数据不一样吧,强制转换成INTEGER,存在非数字的数据就会报错