sql - 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。
如何更改上述查询以获取此列中的最大“数字”。
解决方案
您需要转换为数字。否则max()
作为字符串:
select MAX(TO_NUMBER(person_number))
from per_all_people_f
where REGEXP_LIKE(person_number, '^[[:digit:]]+$')
推荐阅读
- eclipse - 如何在 Eclipse Luna 中将现有文件的编码转换为 UTF-8
- python - 如果我必须添加一个以 3 为间隔的值的系列,python 中的代码将是什么
- javascript - Visual Studio 和 chrome 的 let 和 const 问题
- fabricjs - 如何关闭 fabric.js 对齐指南?
- qt - 如何在 Windows 的 .pro 文件中设置路径?
- java - eclipse中导入openjdk11,aspectj报错
- javascript - 如何从php中的经度和纬度获取google地址
- spring-cloud-contract - 否定 Spring Cloud 合约中的 url 模式
- python-3.x - 如何在 Python 战舰游戏中将一个功能连接到另一个功能?
- angular - 几秒钟后如何在角度旋转木马中执行下一步?