MS SQL Server MAX功能

时间:2013-07-18 19:19:33

标签: sql sql-server

我对MS SQL Server有点新意,我正在尝试执行一个非常简单的查询,如下所示:

SELECT name, id, description, distance 
FROM my_table
WHERE id IS NOT NULL
ORDER BY distance DESC

我的距离值范围为1到18752。

出于某种原因,上面的查询给出了最高距离值为9999,而大于9999的值在下面的某处找到。

我也尝试过

MAX(distance)

仍然给了我9999.

使用此功能有一些关键方面我错过了吗?

2 个答案:

答案 0 :(得分:7)

你的距离不是int,我猜:

SELECT name, id, description,distance
FROM my_table
WHERE id IS NOT NULL
ORDER BY CAST(distance AS INT) DESC

CASTINT,它将按整数值排序。

答案 1 :(得分:5)

您的问题是distance的数据类型。如果它为VARCHARNVARCHAR,则按字母顺序对其进行排序。

如果您希望以数字方式排序,您可能希望使用INT或类似的东西。