首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

能不能使用类似row_number()进行分类编号,该怎么解决

2012-05-28 
能不能使用类似row_number()进行分类编号假如我一张表:姓名爱好张三打牌张三下棋张三唱歌李四打牌李四跳舞

能不能使用类似row_number()进行分类编号
假如我一张表:
姓名 爱好
张三 打牌
张三 下棋
张三 唱歌
李四 打牌
李四 跳舞
....
我希望排序,并给一个编号,如果直接使用
select row_number() over(order by 姓名,爱好) as 编号,姓名,爱好 FROM 表名
得到的编号是连续的,如
1 李四 打牌
2 李四 跳舞
3 张三 唱歌
4 张三 打牌
5 张三 下棋

我希望得到如下结果:
1 李四 打牌
2 李四 跳舞
1 张三 唱歌
2 张三 打牌
3 张三 下棋
也就是按姓名,每组单独编号,能做到否?




[解决办法]
--用PARTITION by 分组编号
select row_number() over(PARTITION by 姓名 order by 姓名,爱好) as 编号,姓名,爱好 FROM 表名

[解决办法]

SQL code
select row_number() over(partition by 姓名 order by 爱好) as 编号,姓名,爱好 FROM 表名
[解决办法]
SQL code
select row_number() over(PARTITION BY 姓名 order by 爱好) as 编号,姓名,爱好 FROM 表名
[解决办法]
探讨
SQL code

select row_number() over(partition by 姓名 order by 爱好) as 编号,姓名,爱好 FROM 表名

[解决办法]
必须可
select row_number()over(partition by 分组字段 order by 排序字段) as id, * from tb

热点排行