日期:2014-05-17  浏览次数:20630 次

sql2000如何每5行数据产生一个组号.
sql2000如何每5行数据产生一个组号.
数据包含一个自增列,即id从1开始自增,要求每5行增加一个组号,
即id从1到为5为group1,id从6到10为group2,11到15为group3...............

------解决方案--------------------
select case when isnull(COUNT(*),0)=5 then 组号+1 else 组号 end from tab
where 组号=(select max(组号) from tab)
group by 组号
------解决方案--------------------
是这样吗:

create table tb(id int identity(1,1),v varchar(10))
go

insert into tb
values('a')
go 21



select *,
       'group'+ cast((id-1) / 5 as varchar) 'group'
from tb
/*
id v group
1 a group0
2 a group0
3 a group0
4 a group0
5 a group0
6 a group1
7 a group1
8 a group1
9 a group1
10 a group1
11 a group2
12 a group2
13 a group2
14 a group2
15 a group2
16 a group3
17 a group3
18 a group3
19 a group3
20 a group3
21 a group4
*/

------解决方案--------------------
感觉是Ntile函数?
------解决方案--------------------
一个简单的公式就可以解决了:
(自动编号+4)/5 取整数部分
------解决方案--------------------
先加个自增的列,然后用在自增列上建立个计算的函数
------解决方案--------------------
自增列如果没缺号的
是可以直接把 自增列/5+1 作为组号了
------解决方案--------------------
引用:
一个简单的公式就可以解决了:
(自动编号+4)/5 取整数部分

------解决方案--------------------
我倒是不建议你用T-SQL代码生成,用程序处理或许会好很多。个人愚见