MS Access拉出五行而不是四行

时间:2014-09-13 22:34:10

标签: c# sql

我制作了一个热门的游戏列表,这是我的SQL代码:

SELECT TOP 4 * FROM games ORDER BY games.likes DESC;

正如您所看到的,代码本身会选择四个游戏,但有时当游戏拥有相同数量的游戏时,它会显示五个游戏 - ..

http://i.stack.imgur.com/Xdisb.png

2 个答案:

答案 0 :(得分:6)

这是设计的。以下是相关部分from the documentation(强调我的):

SELECT TOP 25
FirstName, LastName
FROM Students
WHERE GraduationYear = 1994
ORDER BY GradePointAverage DESC;
     

[...]

     

TOP谓词不会在相等的值之间进行选择。 在前面的示例中,如果第二十五和第二十六个最高等级点平均值相同,则查询将返回26条记录。

您可以使用以下选项来解决此问题:

  • 添加第二个ORDER BY字段,用作打破平局或
  • 在C#中将您的列表过滤为再次

答案 1 :(得分:3)

这是记录在案的行为。

来自Microsoft

SELECT TOP 25
FirstName, LastName
FROM Students
WHERE GraduationYear = 2003
ORDER BY GradePointAverage DESC;
  

TOP谓词不会在相等的值之间进行选择。在前面的示例中,如果第二十五和第二十六个最高等级点平均值相同,则查询将返回26个记录。