我制作了一个热门的游戏列表,这是我的SQL代码:
SELECT TOP 4 * FROM games ORDER BY games.likes DESC;
正如您所看到的,代码本身会选择四个游戏,但有时当游戏拥有相同数量的游戏时,它会显示五个游戏 - ..
答案 0 :(得分:6)
这是设计的。以下是相关部分from the documentation(强调我的):
SELECT TOP 25 FirstName, LastName FROM Students WHERE GraduationYear = 1994 ORDER BY GradePointAverage DESC;
[...]
TOP谓词不会在相等的值之间进行选择。 在前面的示例中,如果第二十五和第二十六个最高等级点平均值相同,则查询将返回26条记录。
您可以使用以下选项来解决此问题:
答案 1 :(得分:3)
这是记录在案的行为。
来自Microsoft:
SELECT TOP 25
FirstName, LastName
FROM Students
WHERE GraduationYear = 2003
ORDER BY GradePointAverage DESC;
TOP谓词不会在相等的值之间进行选择。在前面的示例中,如果第二十五和第二十六个最高等级点平均值相同,则查询将返回26个记录。