当前位置: 代码迷 >> Sql Server >> group by 加序号,该怎么处理
  详细解决方案

group by 加序号,该怎么处理

热度:5   发布时间:2016-04-24 10:23:05.0
group by 加序号
有一个表包含2个字段   年段,班级

我想按照 年段来排名,并且实现每一组都自增,如




------解决方案--------------------
修改一下:
----------------------------------------------------------------
-- Author  :DBA_HuangZJ(發糞塗牆)
-- Date    :2014-07-07 14:56:39
-- Version:
--      Microsoft SQL Server 2012 - 11.0.5058.0 (X64) 
-- May 14 2014 18:34:29 
-- Copyright (c) Microsoft Corporation
-- Enterprise Edition: Core-based Licensing (64-bit) on Windows NT 6.3 <X64> (Build 9600: ) (Hypervisor)
--
----------------------------------------------------------------
--> 测试数据:[TB]
if object_id('[TB]') is not null drop table [TB]
go 
create table [TB]([年段] varchar(4),[班级] varchar(3))
insert [TB]
select '高一','1班' union all
select '高一','2班' union all
select '高二','1班' union all
select '高二','2班' union all
select '高三','1班' union all
select '高三','2班'
--------------开始查询--------------------------

select row_number()over(partition by 年段 order by 年段,班级)id,年段,班级
from tb
ORDER BY CASE 年段 WHEN '高一' THEN 1 WHEN '高二' THEN 2 ELSE 3 END 
----------------结果----------------------------
/* 
id                   年段   班级
-------------------- ---- ----
1                    高一   1班
2                    高一   2班
1                    高二   1班
2                    高二   2班
1                    高三   1班
2                    高三   2班
*/
  相关解决方案