我怎样才能在SQL
问题描述:
显示列值这是查询的输出“SELECT * FROM FindNthHighestNumber为了通过ProductAmount desc”的
我想上面镶上绿色部分的个人价值图片。我怎样才能做到这一点?像行=“2”
答
Select *,Row_number(PARTITION BY ID ORDER BY (SELECT NULL)) from Table
+0
这并不意味着结果与'row_number'的顺序相同 – Lamak
答
我相信这是你想要什么:
select f.*, row_number() over (order by f.ProductAmount desc)
from FindNthHighestNumber f
order by f.ProductAmount desc;
如果你只是想号码,然后从select
删除f.*
。如果你想选择一个特定的值,再一个方法是使用一个子查询:
select f.*
from (select f.*, row_number() over (order by f.ProductAmount desc) as seqnum
from FindNthHighestNumber f
) f
where seqnum = 2;
或者,如果你只是想在第二排,然后一个更好的方法是offset
/fetch
:
select f.*
from FindNthHighestNumber f
order by f.ProductAmount desc
offset 1
fetch first 1 row only;
你使用'ORDER BY'吗? – Lamak