資料庫row number 的簡單用法

2021-06-20 14:08:54 字數 2696 閱讀 5186

row_number(),簡單來說就是每一條記錄返回數字。

現在,oracle資料庫以及sql server資料庫都支援了row_number() over ()的用法,具體用法也很相似。

下面通過乙個簡單的例子來說一下row_number()的簡單用法。

我們建立乙個表結構以及表資料(student_info)如下所示

學號         姓名            班級           入學班級名次

001          李四               1                          4 

002          張三               2                          1

003          王五               1                          3

004          趙六               2                          4

005          李毅               1                          2

006          錢七               2                          3

007          張八               1                          1

008          李九               2                          2

例1:根據學號的順序生成row_number

select  學號,姓名,班級,入學班級名次,row_number() over(order by 學號)  number from student_info.

結果:學號         姓名            班級           入學班級名次   number

001          李四               1                          4                   1

002          張三               2                          1                   2

003          王五               1                          3                   3

004          趙六               2                          4                   4

005          李毅               1                          2                   5

006          錢七               2                          3                   6

007          張八               1                          1                   7

008          李九               2                          2                   8

例2:在班級內根據學號大小生成row_number,這樣生成的row_number將根據班級分組,然後再班級裡面排序生成,到另乙個分組裡面,初值將重新變為1,是不是跟group by語句的用法很相似。

select  學號,姓名,班級,入學班級名次,row_number() over(partition by 班級 order by 入學班級名次)  number from student_info.

學號         姓名            班級           入學班級名次   number

007          張八               1                          1                   1

005          李毅               1                          2                   2

003          王五               1                          3                   3

001          李四               1                          4                   4

002          張三               2                          1                   1

008          李九               2                          2                   2

006          錢七               2                          3                   3

004          趙六               2                          4                   4

當然,over條件裡面的 partition by以及order by語句可以根據多列分組,多列排序,與查詢語句中的group by以及order by語句類似。

SQL資料庫Rownumber 的兩種排序方式

提示。先按乙個字段分組,再按一些字段排序,最後編號。如下 select row number over partition by userip order by inserttime from useraccess 以上就是sql server資料庫row number over 來自動產生行號的過...

簡單使用資料庫資料庫

查詢 注釋 查詢公式 select 欄位名字1 別名,欄位名字2 as 別名.from 表名 執行順序 from select確定結果集 查詢dept表中的所有資訊 select from dept 查詢雇員表中所有員工的員工編號,員工姓名,上級編號 要查詢的資料 empno,ename,mgr 條...

資料庫 資料庫簡單操作語法

1.create 建立 建立資料庫 create database 資料庫名稱 建立資料庫指定字符集 create database 資料庫名稱 character set 字符集名 2.retrieve 查詢 查詢所有資料庫的名稱 show databases 3.update 修改 修改資料庫字...