在 SQL 查询中,TOP 1 是指只返回结果集中的第一行记录。
SELECT TOP 1 RequestId
FROM PublisherRequests
SELECT TOP 1 RequestId
FROM PublisherRequests
我不同意"The order will be defined based on the clustered key in that table."的说法。
SQL Server Books Online明确表示:如果查询语句没有ORDER BY子句,则结果集中行的顺序是随意的。
这里有一个演示该说法并不总是成立的实例:没有ORDER BY,就没有默认排序顺序。
它将从PublisherRequests
表中选择第一行。
编辑:[排序将基于该表中的聚集键定义 - 此语句是不正确的]。实际上,根据Alex的发现和BOL的说法,行的顺序将是任意的。
参考可以在这里找到。
PublisherRequests
返回第一个RequestID
。没有Order By
子句的结果顺序是任意的。因此,你的示例将返回一个任意的RequestID
(即在RequestID
列表中任意排序的第一个RequestID
)。你可以通过定义Order By
来改变顺序。例如,要获取最后输入的ID,可以编写Select Top 1 RequestID
From PublisherRequests
Order By RequestID Desc
更新以包括来自@Kirtan Gor和@AlexK的更正的订单信息。
这段文字是关于SQL查询中"Top 1"含义的更正说明。它限制了从查询中返回的行数仅为1。这与MySQL中的Limit 1相同。