mssql 学校学生排号

liaoyukun111 2011-04-18 09:01:24
假设一个学校有6个年级,各有6个班,
现在要求是:每个班级都有自己的号,都从01开始,所以各班第一个号是,0101,0201,0301,0401,0501,0601,
不用考虑班多人多的问题。
写一SQL语句完成一个年级的排号
...全文
110 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
--小F-- 2011-04-18
  • 打赏
  • 举报
回复
select
stu_id,class_id,ltrim(class_id) + right('00' + ltrim(row_number() over (partition by class_id order by getdate())),2) as [学号]
from
tb
AcHerat 2011-04-18
  • 打赏
  • 举报
回复

--sql2005

select stu_id,class_id,ltrim(class_id) + right('00000' + ltrim(row_number() over (partition by class_id order by getdate())),2) as [学号]
from tb
快溜 2011-04-18
  • 打赏
  • 举报
回复
你都没说表结构,sql2005用row_number,2000就用临时表SQL Server2005杂谈(3):四个排名函数(row_number、rank、dense_rank和ntile)
幸运的意外 2011-04-18
  • 打赏
  • 举报
回复
如果楼主是2005版本以上:
select row_number() over(partion class order by number) as '班内序号' from tb
Rotel-刘志东 2011-04-18
  • 打赏
  • 举报
回复
---上边写错了
select row_number() over(order by number)as '排号' from tb
Rotel-刘志东 2011-04-18
  • 打赏
  • 举报
回复
select row_number() partion by(order by number)as '排号' from tb

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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