row_number over ()排序函數


語法: row_number () over (排序規則)  計算每一行數據在結果集的行數

 

select ROW_NUMBER() over (order by FSalary) as 排序 ,*  from T_Employe 

查詢前五條數據, 並顯示行號

select top 5  * from
(select ROW_NUMBER() over(order by FSalary)as rownum ,*  from T_Employee )as a

 

row_number ()只能出現在 select , order by子句中, 不能用在where語句中,

比如: 返回第三行和第五行的數據

select ROW_NUMBER() over (order by FSalary ),* from T_Employee  
where (ROW_NUMBER()over (order by FSalary ))>=3 

   and  (ROW_NUMBER()over (order by FSalary ))<=5

這樣寫 , 則會提示:開窗函數只能出現在 SELECT 或 ORDER BY 子句中。

因此: 可以使用子查詢,如下

select *from (
select  row_number()over(order by FSalary) as rownum ,* from T_Employee
)as a where rownum >=3 and rownum<=5

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM