首页 > 解决方案 > Max函数在简单的sql查询中不起作用

问题描述

我有一张per_all_people_f有 3000-4000 人的桌子。在某些情况下,也有一些非数字字符。我想选择此表中存在的最高数字。当我使用以下查询时:

select ( MAX ( DISTINCT person_number) ) from per_all_people_f
where REGEXP_LIKE(person_number  , '^[[:digit:]]+$')

我没有得到最大数量。我得到 98098 尽管系统中已经存在更大的数字,例如 -1503388。
如何更改上述查询以获取此列中的最大“数字”。

标签: sqloracle

解决方案


您需要转换为数字。否则max()作为字符串:

select MAX(TO_NUMBER(person_number))
from per_all_people_f
where REGEXP_LIKE(person_number, '^[[:digit:]]+$')

推荐阅读