SQL實現分類彙總流水號

2021-09-23 14:02:19 字數 2007 閱讀 8511

在sql資料處理中,偶爾會遇到對資料分組,然後進行編號,編號在每一組中都要以1開始。例如,有一正學生表,字段包括主鍵id,學生姓名,班級編號,學生編號。要求學生編號按照班級號開頭,以001為流水號開頭,即按照班級編號分組生成流水號,示例**如下:

-- 學生表

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

-- table structure for `student`

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

create table `student` (

`id` int(40) not null comment '主鍵',

`name` varchar(20) default null comment '姓名',

`classnum` varchar(40) default null comment '班級編號',

`stunum` varchar(40) default null comment '學生編號',

primary key (`id`)

) engine=innodb default charset=utf8;

-- 資料

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

-- records of student

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

insert into `student` values ('1', '張凱凱', '01001', null);

insert into `student` values ('2', '王江河', '01001', null);

insert into `student` values ('3', '陳賽', '01001', null);

insert into `student` values ('4', '姜蓓蓓', '01002', null);

insert into `student` values ('5', '劉明', '01002', null);

insert into `student` values ('6', '李海歌', '01003', null);

insert into `student` values ('7', '薛曉梅', '01003', null);

insert into `student` values ('8', '劉艷豔', '01004', null);

insert into `student` values ('9', '李飛', '01005', null);

insert into `student` values ('10', '劉翔', '01005', null);

insert into `student` values ('11', '張海', '01005', null);

insert into `student` values ('12', '温宇飛', '01007', null);

資料截圖:

實現sql

-- 資料生成

select

s.id,

s.name,

s.classnum,

if(@num=s.classnum,concat(s.classnum,lpad(@row:=@row+1,3,0)),concat(s.classnum,lpad(@row:=1,3,0))) as stunum,

@num:=s.classnum as no_use

from student s,(select @row:=0,@num:=0) as c

order by s.id

結果截圖:

SQL生成流水號

經過了幾次的測試終於成功了 declare year int,month int,day int,temp no varchar 12 needno varchar 4 no varchar 20 number varchar 50 randno varchar 50 nu varchar 10 s...

sql 生成流水號

mysql生成流水號 select lpad ifnull max substring business order code,3,4 1,1 4,0 as waternumber from bh customer info business order code的值為前面兩位英文,後面四位數字,例...

SQL系列流水號

實現效果 流水號由三部分組成,流水號頭部 日期 產生的序號 流水號序號產生按照每天乙個週期來算,即每天序號都由0開始 設計原理 我用乙個專門的表記錄流水號的相關資訊,例如流水號頭,流水號名稱,當前流水號的序號等等,如下 編號表對應的實體表 如果tb bh儲存的日期和當前日期相同,則從tb bh的xu...