2

我对 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。

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

4

2 回答 2

7

你的距离不是一个整数,我想:

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

CAST因为INT它将按整数值排序。

于 2013-07-18T19:21:48.227 回答
5

您的问题是您的数据类型distance。如果它按字母顺序排序 VARCHARNVARCHAR

如果你想让它按数字排序,你会想要使用INT或类似的东西。

于 2013-07-18T19:22:59.840 回答