作者:翁向军_943 | 来源:互联网 | 2022-12-02 12:08
SQL max函数没有给出正确的结果
select max (liri_appid) from idea_interface;
结果是:90802但我知道它的最大值为15454545
我在运行order by子句时遇到的同样问题.结果即将到来
1
13
2
23
4
5
6
69
777
9
不知道为什么.
1> APC..:
LIRI_APPID VARCHAR2(20 BYTE)
liri_appid
被定义为varchar2
.这意味着它使用字符串语义.ASCII值9
高于ASCII值,1
因此'90802'
大于' 15454545'
.
出于同样的原因'13'
,低于'2'
你的订购奇怪性.
解决方法是
select max (to_number( (liri_appid))
from idea_interface;
和
order by to_number( (liri_appid) asc
正确的解决方案是更改数据模型,因此liri_appid
定义为数字.使用正确的数据类型始终是最佳策略.