码迷,mamicode.com
首页 > 数据库 > 详细

使用sqlserver 给每组记录顺序编号

时间:2015-04-08 18:06:40      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:sqlserver   分组排序   rownumber   

使用sqlserver 给每组记录顺序编号

    项目业务需要,给每组记录编号,方便在行转列时,正对每个人定位到具体某行;SQL Server 2005后之后,引入了row_number()函数,row_number()函数的分组排序功能使这种操作变得非常简单。示例如下:

    首先创建表,并录入测试数据。

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);

执行如下语句,给每组数据进行重新编号;
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
结果如下:

技术分享

使用sqlserver 给每组记录顺序编号

标签:sqlserver   分组排序   rownumber   

原文地址:http://blog.csdn.net/neweastsun/article/details/44943259

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!