选择TEXT列的MAX INT值

时间:2013-05-03 09:25:37

标签: sql oledb ms-access-2010

UserID    UserName  Password

1                abc               123
10               xyz               456
3                mno               254

SELECT MAX(UserId) AS UserId FROM UserLogin

当我运行此查询时,它给了我3而不是10

所有列都是TEXT数据类型

3 个答案:

答案 0 :(得分:10)

您的查询正在返回3,因为考虑到字典顺序,它是一个较大的值(以3开头的任何内容都被视为大于以1开头的内容,就像以{{{{1}开头的内容一样1}}大于以b开头的任何内容。

使用VAL函数将TEXT列转换为数值:

a

如果您担心性能问题,则应将此列设为数字。考虑到你正在为表中的每一行调用一个函数。此外,它不会使用此列可能具有的任何索引。

答案 1 :(得分:5)

确保列类型为数字,而不是varchar或string。

答案 2 :(得分:2)

尝试更改

SELECT MAX(val(UserId)) AS UserId FROM UserLogin