Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Max函数在简单sql查询中不起作用_Sql_Oracle - Fatal编程技术网

Max函数在简单sql查询中不起作用

Max函数在简单sql查询中不起作用,sql,oracle,Sql,Oracle,我有一张3000-4000人的桌子。在某些情况下,还存在一些非数字字符。我想选择这张表中的最高数字。当我使用以下查询时: 我没有得到最大的数目。我得到了98098,尽管系统中已经存在像-1503388这样更大的数字。如何更改上述查询以获取此列中的最大数字。您需要转换为数字。否则,最大值将作为字符串: select MAX(TO_NUMBER(person_number)) from per_all_people_f where REGEXP_LIKE(person_number, '^[[:di

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


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

您需要转换为数字。否则,最大值将作为字符串:

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

这是转换问题。您可以使用以下方法进行转换:

使用CAST:

或使用到您的号码:

不相关,但是:与max一起使用distinct没有任何意义
select MAX(TO_NUMBER(person_number))
from per_all_people_f
where REGEXP_LIKE(person_number, '^[[:digit:]]+$')
select MAX(CAST(person_number as NUMBER))
from per_all_people_f
where REGEXP_LIKE(person_number, '^[[:digit:]]+$')
select 
max(TO_NUMBER(person_number))
from per_all_people_f
where 
REGEXP_LIKE(person_number, '^[[:digit:]]+$')