sqlserver row_number() over() 理解


 1 -- 創建語句
 2 create table goodsTest(--商品表
 3     id int primary key identity(1,1),
 4     goosType varchar(100),--商品歸類
 5     goodsName varchar(100),--商品名稱
 6     serialNo int
 7 )
 8 go
 9 insert into goodsTest(goosType,goodsName)
10 select '面類','面包' union
11 select '面類','燴面' union
12 select '飲品','礦泉水' union
13 select '飲品','冰紅茶' union
14 select '飲品','' union
15 select '面類','餄烙面' union
16 select '面類','雞蛋灌餅' union
17 select '面類','手抓餅' union
18 select '飲品','茶π' union
19 select '零食','脆司令' union
20 select '零食','勁仔小魚' union
21 select '零食','衛龍' 
22 
23 --用法1.》》》row_number() over(Order by ...)
24 select row_number() over(order by goodsName) rownum,goodsName  from goodsTest --根據goodsName 排序得到連續的序號rownum
25 
26 --用法2.》》》row_number() over(partition by ... Order by ...)
27 select row_number() over(partition by goosType order by goodsName) rownum,goodsName  from goodsTest --根據 goosType 分組,goodsName 排序得到連續的序號rownum
28 
29 --經常用法3.》》》 修改數據的序號serialNo
30 update a set serialNo=b.RowNum
31 from  goodsTest a,
32 (select ROW_NUMBER() over(partition by goosType order by goodsName) RowNum,id from goodsTest /*where ID=''*/) b
33 where a.id=b.id 

 


免責聲明!

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



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