gpt4 book ai didi

sql-server - 如何使用 CTE 获取最后 5 行?

转载 作者:行者123 更新时间:2023-12-02 00:27:07 25 4
gpt4 key购买 nike

我在使用 CTE 时遇到问题。

WITH CTE AS 
(
SELECT
ROW_NUMBER() OVER (PARTITION BY #TEMPTABLE.Id order by #TEMPTABLE.Id) AS 'RowNo',
#TEMPTABLE.Id,
#TEMPTABLE.UserId,
#TEMPTABLE.Code,
#TEMPTABLE.CodeDesc
FROM #TEMPTABLE
)
SELECT DISTINCT Id, UserId,Code,CodeDesc
FROM CTE
where RowNo <=5

从这个查询中,我想获取最后 5 行。但我总是得到前 5 行。请给我一个解决方案。

最佳答案

将降序(DESC)添加到ROW_NUMBER的 ORDER BY子句中,默认为升序(ASC )这就是您获得前 5 行的原因,请尝试以下操作:

WITH CTE AS 
(
SELECT
ROW_NUMBER() OVER (PARTITION BY #TEMPTABLE.Id ORDER BY #TEMPTABLE.ActionId DESC) AS 'RowNo',
#TEMPTABLE.Id,
#TEMPTABLE.UserId,
#TEMPTABLE.Code,
#TEMPTABLE.CodeDesc
FROM #TEMPTABLE
)
SELECT DISTINCT RowNo,Id, UserId,Code,CodeDesc
FROM CTE
WHERE RowNo <=5

关于sql-server - 如何使用 CTE 获取最后 5 行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31399523/

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