SQL ORDER BY 0(int)需要是第一个

时间:2014-08-21 18:40:51

标签: sql integer sql-order-by

我试图按ASC顺序对整数字段进行排序,但它会自动将“0”值放在底部附近(刚好在NULL值之上)。

我正在使用SQL Server 2005.我认为我的DBMS已经过时,因为我试图使用NULLS FIRST,但它无法识别。

*编辑以显示更好的查询(感谢快速反馈)

我想看到的内容:
PriSortOrder /社区名称
0 /陶森
1 /亚特兰大
2 /巴尔的摩
NULL

我所看到的:
PriSortOrder /社区名称
1 /亚特兰大
2 /巴尔的摩
0 /陶森
NULL

查询:

SELECT PriSortOrder, CommunityName
FROM Communities
WHERE InCatalog=1 
ORDER BY PriSortOrder 

1 个答案:

答案 0 :(得分:0)

在显示PrioritySortOrder值以及Community值之前,您不能说数据的顺序是正确的(或错误的)。例如,如果数据是:

Community    PrioritySortOrder
0            5
1            0
2            3
NULL         6

您将获得输出:

1
2
0
NULL

如果数据是:

Community    PrioritySortOrder
0            0
1            1
2            2
NULL         3

然后你会得到结果:

0
1
2
NULL

您可以通过(添加FROM table子句并按Community而不是PrioritySortOrder排序来修复SQL(尽管NULL是先到还是最后取决于您的DBMS)。 / p>