row_number函式函式是對分組之後的資料進行組內編號,效果如下:
由於新增了一列num,結合組內的排序,可以很方便的選取組內特定的資料。
實現步驟
--1.實現給每一行新增乙個序號
set @row_number = 0;
select
(@row_number:=@row_number + 1) as num, s.id, s.name, s.age
from
student s;
這裡利用使用者變數實現資料自增
--2.分組編號
set @row_number=0, @customer_no=0;
select
@row_number:=case
when @customer_no = s.age then @row_number + 1
else 1
end as num,
@customer_no:=s.age as stu_age,
s.id,
s.name
from
student s
order by
s.age;
customer_no是乙個臨時變數,每次查詢都被賦值為age。而case中判斷條件在customer_no賦值之前,其實就是判斷當前行age值是否與上一行age值相同。當不相同時重新編號(輸出1),從而實現了分組順序編號的功能。效果與oracle中的row_number函式相同。
--3.使用者變數賦值
可以使用另一種方式替代使用者變數的賦值
select
@row_number:=case
when @customer_no = s.age then @row_number + 1
else 1
end as num,
@customer_no:=s.age as stu_age,
s.id,
s.name
from
student s, (select @row_number:=0, @customer_no:=0) as t
order by
s.age;
這裡將賦值放入select語句內部,效果一樣。
mysql中完成row number 功能
下列的功能再mysql上會由於row number功能不存在而報錯 select title,content row number over partition by title,content order by shows desc as rk from yy push race info v6 ...
mysql中如何row number函式 ROW
例項如下 1.使用row number 函式進行編號,如 select email,customerid,row number over order by psd as rows from qt customer 原理 先按psd進行排序,排序完後,給每條資料進行編號。2.在訂單中按 的公升序進行排...
SQL Server中row number的用法
row number 函式將針對select語句返回的每一行,從1開始編號,賦予其連續的編號。在查詢時應用了乙個排序標準後,只有通過編號才能夠保證其順序是一致的,當使用row number函式時,也需要專門一列用於預先排序以便於進行編號。row number 常用的幾種情況 1.使用row numb...