我正在使用SQL Server 2016 Express。该查询按预期返回数据:
SELECT TOP (1000)
[ResourceID],
[OrganizationID],
[CategoryID],
[SubCategoryID]
FROM
[dbo].[Resources]
对于OrganizationID
,我得到1,2,3,4,5,6等。
另一方面,此查询:
SELECT TOP (1000)
[ResourceID],
[OrganizationID]
FROM
[dbo].[Resources]
返回OrganizationID
1,1,1,1等的全1
从1990年开始从事SQL Server的工作;我从来没有看过这个。请有人解释。
答案 0 :(得分:3)
TOP
定义显式排序顺序的情况下 ORDER BY
是一种随机游戏-您获得一些任意 1000行,而没有真正知道它们是什么“前1000名”(因为SQL Server可以选择以任何方式自由订购-没有系统固有的默认排序,可以通过主键或其他方式进行排序-没有ORDER BY
==没有定义的排序)...
如果同时向两个查询添加ORDER BY ResourceID
或ORDER BY ResourceID, OrganizationID
,该怎么办?您现在是否得到相同的结果?