sql2000如何每5行数据产生一个组号.

jyh070207 2014-01-02 08:43:07
sql2000如何每5行数据产生一个组号.
数据包含一个自增列,即id从1开始自增,要求每5行增加一个组号,
即id从1到为5为group1,id从6到10为group2,11到15为group3...............
...全文
794 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
我倒是不建议你用T-SQL代码生成,用程序处理或许会好很多。个人愚见
以学习为目的 2014-01-03
  • 打赏
  • 举报
回复
引用 5 楼 tcmakebest 的回复:
一个简单的公式就可以解决了: (自动编号+4)/5 取整数部分
haitao 2014-01-03
  • 打赏
  • 举报
回复
自增列如果没缺号的 是可以直接把 自增列/5+1 作为组号了
ChinaITOldMan 2014-01-03
  • 打赏
  • 举报
回复
先加个自增的列,然后用在自增列上建立个计算的函数
tcmakebest 2014-01-02
  • 打赏
  • 举报
回复
一个简单的公式就可以解决了: (自动编号+4)/5 取整数部分
专注or全面 2014-01-02
  • 打赏
  • 举报
回复
感觉是Ntile函数?
  • 打赏
  • 举报
回复
修改了一下,还得加1:
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+1 as varchar) 'group'
from tb
/*
id	v	group
1	a	group1
2	a	group1
3	a	group1
4	a	group1
5	a	group1
6	a	group2
7	a	group2
8	a	group2
9	a	group2
10	a	group2
11	a	group3
12	a	group3
13	a	group3
14	a	group3
15	a	group3
16	a	group4
17	a	group4
18	a	group4
19	a	group4
20	a	group4
21	a	group5
*/
  • 打赏
  • 举报
回复
是这样吗:
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
*/
giftzheng 2014-01-02
  • 打赏
  • 举报
回复
select case when isnull(COUNT(*),0)=5 then 组号+1 else 组号 end from tab where 组号=(select max(组号) from tab) group by 组号

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧