我试图从一组行中获得最高的系统编号。系统号前面是SYS,因此select SYSTEM_ID from TABLE将产生{SYS901,SYS87,SYS3024.....}
这是我试图使用的查询:
select MAX(REPLACE(SYSTEM_ID,'SYS','')) from TABLE
可能的结果是
{901,87,3024,20,1}
它正在返回901值,我希望在这里看到3024值。我认为问题在于字段是一个VARCHAR,而不是NUMBER。如何解决这个问题,我不知道。
发布于 2014-11-04 16:00:23
如果表中有‘SYS5001B’这样的值,您可能需要考虑进行“安全”数字转换:
SELECT MAX( TO_NUMBER( COALESCE( REGEXP_SUBSTR( system_id, '\d+' ), '0' ) ) )
FROM tablehttps://stackoverflow.com/questions/26739381
复制相似问题