使用sqlserver 給每組記錄順序編號(hào)
項(xiàng)目業(yè)務(wù)需要,給每組記錄編號(hào),方便在行轉(zhuǎn)列時(shí),正對(duì)每一個(gè)人定位到具體某行;SQL Server 2005后以后,引入了row_number()函數(shù),row_number()函數(shù)的分組排序功能使這類操作變得非常簡(jiǎn)單。示例以下:
首先創(chuàng)建表,并錄入測(cè)試數(shù)據(jù)。
create table test_001(
user_id varchar(32),
price decimal(10,0)
)
insert into test_001 values('001',4000);
insert into test_001 values('001',3900);
insert into test_001 values('001',3800);
insert into test_001 values('002',4000);
insert into test_001 values('002',3800);
insert into test_001 values('002',3700);
履行以下語句,給每組數(shù)據(jù)進(jìn)行重新編號(hào);
select ROW_NUMBER() over(PARTITION by user_id order by price desc) sort_num ,USER_ID ,price
from test_001
order by USER_ID,price desc
結(jié)果以下: