gpt4 book ai didi

sql - 如何在内部查询中使用 order by 子句

转载 作者:搜寻专家 更新时间:2023-10-30 22:00:59 24 4
gpt4 key购买 nike

我在内部查询中使用 order by 子句时遇到了很大的麻烦。
我使用此查询从数据库中获取分页结果:

;WITH ItemsRank AS
(
select
ROW_NUMBER() OVER(ORDER BY t.CreatedOnDate) AS RowNum,
t.ItemId
from Tickets t
where t.CompanyId = @CompanyId
group by t.ItemId ...

order by t.CreatedOnDate desc -- this makes me trouble

) ,x as (
select ItemsRank.*,
c.CommentText ...

WHERE RowNum > @p_From
AND RowNum <= @p_From + 50
)
select * from x where RowNumComment <= 4


因为查询很大,所以我删除了所有选择、加入、组等。
如果我在查询结束时按 order by 查询,它会工作但不像预期的那样。
因为查询的第一部分应该按降序获得前 50 个结果。

这是我得到的错误:

The ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions, unless TOP or FOR XML is also specified

我做错了什么?
是否可以修复此查询以在查询的第一部分获取已订购的商品?

最佳答案

如错误所示,您不能在 CTE 中使用 ORDER BY

ORDER BY 不是必需的。您在 OVER 子句中指定顺序。您可以在最终查询中ORDER BY RowNum

关于sql - 如何在内部查询中使用 order by 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14182480/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com