在SQL查询中,TOP 1是什么意思?

5
在 SQL 查询中,TOP 1 是指只返回结果集中的第一行记录。
SELECT TOP 1 RequestId 
FROM PublisherRequests

1
这意味着只取前n行。您需要使用“order by”来定义前几行是什么。 - dotjoe
6个回答

17

+1。看到你发的链接了,谢谢提供信息。回答已更新。 - Kirtan

10

它将从PublisherRequests表中选择第一行。

编辑:[排序将基于该表中的聚集键定义 - 此语句是不正确的]。实际上,根据Alex的发现和BOL的说法,行的顺序将是任意的。

参考可以在这里找到。


1
并非总是如此。我发布了一个演示,证明这并不总是正确的:http://sqlblog.com/blogs/alexander_kuznetsov/archive/2009/05/20/without-order-by-there-is-no-default-sort-order.aspx - A-K
还可以查看Conor Cunningham(MS Query Optimisation Team)关于同一主题的博客文章http://blogs.msdn.com/conor_cunningham_msft/archive/2008/08/27/no-seatbelt-expecting-order-without-order-by.aspx - GilaMonster

9
在这个例子中,查询将从表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"含义的更正说明。

3

2
这意味着只返回顶部的1行,即第一行。

0

它限制了从查询中返回的行数仅为1。这与MySQL中的Limit 1相同。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接