SQL ORDER BY 0(int)必须是第一个

SQL ORDER BY 0(int)必须是第一个,sql,integer,sql-order-by,Sql,Integer,Sql Order By,我试图按ASC顺序对整型字段进行排序,但它会自动将0值放在接近底部的空值上方 我正在使用SQLServer2005。我认为我的DBMS已经过时了,因为我试图先使用null,但它没有被识别 *编辑以显示更好的查询感谢快速反馈 我想看到的是: PriSortOrder/社区名称 0/Towson 1/亚特兰大 2/巴尔的摩 空的 我看到: PriSortOrder/社区名称 1/亚特兰大 2/巴尔的摩 0/Towson 空的 查询: SELECT PriSortOrder, CommunityNam

我试图按ASC顺序对整型字段进行排序,但它会自动将0值放在接近底部的空值上方

我正在使用SQLServer2005。我认为我的DBMS已经过时了,因为我试图先使用null,但它没有被识别

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

我想看到的是: PriSortOrder/社区名称 0/Towson 1/亚特兰大 2/巴尔的摩 空的

我看到: PriSortOrder/社区名称 1/亚特兰大 2/巴尔的摩 0/Towson 空的

查询:

SELECT PriSortOrder, CommunityName
FROM Communities
WHERE InCatalog=1 
ORDER BY PriSortOrder 
在显示PrioritySortOrder值和Community值之前,不能说数据的顺序正确或错误。例如,如果数据为:

Community    PrioritySortOrder
0            5
1            0
2            3
NULL         6
Community    PrioritySortOrder
0            0
1            1
2            2
NULL         3
您将获得以下输出:

1
2
0
NULL
如果数据为:

Community    PrioritySortOrder
0            5
1            0
2            3
NULL         6
Community    PrioritySortOrder
0            0
1            1
2            2
NULL         3
然后您将得到以下结果:

0
1
2
NULL

您可以通过添加FROM table子句并按社区排序(而不是PrioritySortOrder)来修复SQL,尽管NULL是第一个还是最后一个取决于您的DBMS。

该查询不应产生该输出。你能在上面创建一个最小的测试用例吗?确保使用架构中的类型和数据库中的实际数据。您的查询不包括PrioritySortOrder列的值。你在看社区列的值吗?按情况排序当PrioritySortOrder=0,然后1,否则0结束时,PrioritySortOrderI认为你的数据和结果现在已经正确显示了。使用编辑框上方的{}缩进代码,如material-SQL语句和数据集。您的查询也缺少FROM子句。每个DBMS都会自己选择是先列出NULL还是最后列出NULL。在较新版本的标准SQL中,如果希望并且DBMS支持,可以先指定null,然后指定null。您应该识别正在使用的DBMS。