首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从表中获取第五行的T-Sql

从表中获取第五行的T-Sql
EN

Stack Overflow用户
提问于 2015-08-08 08:37:44
回答 1查看 36关注 0票数 0

在从表中提取第5行时,我发现了一件非常奇怪的事情,我使用了下面提到的查询,并认为可以先取前5行,然后在外部查询按降序排序后取前1行。但是下面的查询提供了错误的输出。

代码语言:javascript
复制
select top 1 * 
from 
     (select * 
      from 
          (select top 5 BusinessEntityID, FirstName, LastName 
           from person.person) as a 
     ) as b
order by 
    b.BusinessEntityID desc

这个查询给我的是最后一行,而不是第5行。我知道使用row_number()函数可以很容易地实现这一点,但是我想知道为什么上面的查询提供了错误的输出。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-08 08:45:41

我相信您错过了ORDER BY查询中的TOP 5。并且您可以删除其中一个SELECT *

代码语言:javascript
复制
select top 1 * 
from (
    select top 5 BusinessEntityID,FirstName,LastName 
    from person.person
    order by BusinessEntityID asc
) as a
order by a.BusinessEntityID desc

而且,您是正确的,这对于ROW_NUMBER来说要简单得多。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31891279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档