34,590
社区成员
发帖
与我相关
我的任务
分享
----------------------------------------------------------------
-- 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班
*/