从sql server中的表中选择第三高的值

f8rj6qna  于 2021-07-29  发布在  Java
关注(0)|答案(2)|浏览(356)

关闭。这个问题需要更加突出重点。它目前不接受答案。
**想改进这个问题吗?**通过编辑这篇文章更新这个问题,使它只关注一个问题。

9个月前关门了。
改进这个问题
如何从sql server中的表中选择第三高的值(或表中的任何值)

js81xvg6

js81xvg61#

在sql server中,如果需要第三高的非重复值,可以使用:

select p.*
from (select p.*, dense_rank() over (order by listprice desc) as seqnum
      from products p
     ) p
where seqnum = 3;

如果您只是想要按价格订购时排在第三位的行:

select p.*
from products p
order b listprice desc
offset 2 fetch first 1 row only;
6l7fqoea

6l7fqoea2#

SELECT  TOP 1 with TIES prod.product_name, 
    prod.list_price FROM(
                    SELECT
                        product_name , 
                        list_price 
                    FROM
                        production.products
                    ORDER BY 
                        list_price DESC
                        Offset 2 ROWS
                      **Fetch First 4 Rows Only**
                    )  as prod
    Order BY list_price  desc

此查询从表中获取所有价值第三高的产品(如果有许多产品具有相同的价格/价值)。在这里,您可以替换/更新偏移值以从表中获取第二、第三、第四等值。此外,您还可以添加fetch first(row count)行来限制所需的位置值。

相关问题