Fem*_*ale 3 sql oracle oracle11g
我在SQL中发现了一个关于MAX()函数的非常有趣/奇怪的事情.
我有varchar2(20)数据类型的列ID,有以下条目: -
ID
根据我的理解,如果我使用"select max(ID)from table;" 我应该得到909作为结果,但我得到99.有人可以解释为什么会发生这种情况吗?
1
2
3
4
5
6
9
99
909
小智 11
您误解了 - 因为列是varchar而不是数字,所以它按字符串值排序; 909来之前99,99最大值也是如此.
要查看列的最大数值,请尝试:
select max(to_number(ID)) from my_table
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9329 次 |
| 最近记录: |