如何安装考场

有一表:
编号 考号  姓名
1  cc01  AA
1  cc02  BB
1  cc03  CC
1  cc04  DD
1  cc05  EE
...
我的目的就是根据每个考室的人数(用户输入)自动生成一个表,如按一个考室3个考生的效果如下:
考室  考号区间
1    cc01-cc03
2    cc04-cc05

 

--------------------

create table tb(编号 int,考号 char(4),姓名 varchar(10))
insert tb select 1 ,  'cc01' , 'AA' 
insert tb select 1 ,  'cc02' , 'BB' 
insert tb select 1 ,  'cc03' , 'CC' 
insert tb select 1 ,  'cc04' , 'DD' 
insert tb select 1 ,  'cc05' , 'EE'
go

select ceiling(cnt/3.0) row,* into t
from 
(
   select *,cnt=(select count(*) from tb where 考号<=a.考号)
   from tb a
) tt
go
create function dbo.f_str(@row int)
   returns varchar(100)
as
begin
   declare @re varchar(100)
   set @re=''
   select top 1 @re=考号 from t where row=@row order by 考号
   select top 1 @re=@re+'-'+考号 from t where row=@row order by 考号 desc
   return @re
end
go

select row [室号],dbo.f_str(row) [考号区间]
from t
group by row

drop table tb,t
drop function f_str

/*
室号                        考号区间
-------------------- --------------
1                      cc01-cc03
2                      cc04-cc05

(2 行受影响)

*/
http://topic.youkuaiyun.com/u/20080305/18/34a9f481-1dac-43bf-9bde-d21d2ba75880.html?seed=1637030877
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值