oracle三種排序函數?
三個排序函數簡介:
1、row_number()函數,為查詢出來的每一行記錄生成一個序號,依次排序且不會重復,注意使用row_number函數時必須要用over子句選擇對某一列進行排序才能生成序號
語法: select 別名.*, row_number() over(order by 子句 ) from 表名 別名;
2、rank()函數:主要解決over子句排序字段值相同的情況
語法:select 別名.*, rank() over(order by 子句 ) from 表名 別名;
3、dense_rank函數:功能與rank函數類似,dense_rank函數在生成序號時是連續的,而rank函數生成的序號有可能不連續。dense_rank函數出現相同排名時,將不跳過相同排名號,rank值緊接上一次的rank值
語法:select 別名.*, dense_rank() over(order by 子句 ) from 表名 別名;