首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >选择第8行之后的前3行

选择第8行之后的前3行
EN

Stack Overflow用户
提问于 2013-01-28 08:12:06
回答 3查看 1.4K关注 0票数 1

我有一张桌子:id, Group, Status, Subject

我需要行group=2和status=2,但我想跳过前8个结果(按id排序)。这就是我尝试过的,但它没有跳过前8行:

代码语言:javascript
运行
复制
SELECT TOP 3 [id], LEFT ([subject],30) AS Title 
FROM [Katavot] 
    WHERE (([Status] = @Status) AND ([Group] = @Group)) 
ORDER BY [id] DESC
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-28 08:24:43

代码语言:javascript
运行
复制
;WITH Katavod_Modified AS 
(
    SELECT id, LEFT ([subject],30) As Subject, [Group], [Status],  ROW_NUMBER() OVER (ORDER BY id) RN
    FROM [Katavot]
)
SELECT TOP 3 [id], LEFT ([subject],30) AS Title FROM [Katavod_Modified] WHERE 
(([Status] = @Status) AND ([Group] = @Group) AND (RN > 8)) ORDER BY [id] DESC 

看起来与this one非常相似。

票数 1
EN

Stack Overflow用户

发布于 2013-01-28 08:27:46

基于row_number

代码语言:javascript
运行
复制
WITH MyResult AS
{
SELECT ROW_NUMBER() OVER(ORDER BY Id DESC) AS RowNumber, [id], LEFT ([subject],30) AS Title 
FROM [Katavot] 
    WHERE (([Status] = @Status) AND ([Group] = @Group)) 
ORDER BY [id] DESC
}
SELECT [id], Title 
FROM MyResult
WHERE RowNumber BETWEEN 9 AND 12
票数 1
EN

Stack Overflow用户

发布于 2013-01-28 08:28:10

MySQL:

代码语言:javascript
运行
复制
LIMIT x, y

MSSQL:

代码语言:javascript
运行
复制
select top y *
from <table>
where <unique id> not in (select top x <unique id> from <table> order by <unique id>)
from <table> order by <unique id>
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14553798

复制
相关文章

相似问题

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