sql2000 ,sql问题

DataBox-MDX 2011-08-18 10:06:29
再次申明是sql2000,所以不能用row_number,帖子地址:http://topic.csdn.net/u/20110818/09/bc68e38f-ed83-49e0-b906-5281d6313e89.html
...全文
100 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
--小F-- 2011-08-18
  • 打赏
  • 举报
回复
----------------------------------------------------------------
-- Author :fredrickhu(小F,向高手学习)
-- Date :2011-08-18 11:26:37
-- Verstion:
-- Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86)
-- Jul 9 2008 14:43:34
-- Copyright (c) 1988-2008 Microsoft Corporation
-- Enterprise Evaluation Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 3)
--
----------------------------------------------------------------
--> 测试数据:[tb]
if object_id('[tb]') is not null drop table [tb]
go
create table [tb]([姓名] varchar(6),[班级] varchar(20))
insert [tb]
select '刘曦羲','20110101' union all
select '陈程吉','20110101' union all
select '单杰妮','20110101' union all
select '陈俏颖','20110102' union all
select '郑晋斌','20110102' union all
select '陶咪箫','20110102' union all
select '陈彦名','20110102' union all
select '陈洪璐','20110103' union all
select '陈笑影','20110103' union all
select '周宇豪','20110103' union all
select '陈俞妃','20110103' union all
select '刘丹丹','20110103' union all
select '黄强','20110103' union all
select '叶力鸣','20110103'
--------------开始查询--------------------------
select ID=identity(int,1,1),* into #t from tb
select
姓名,班级,
学号=ltrim(班级+right('100'+(select COUNT(distinct id)+1 from #t where 班级=t.班级 and ID<t.id),2))
from
#t t
drop table #t
----------------结果----------------------------
/* 姓名 班级 学号
------ -------------------- ------------------------
刘曦羲 20110101 2011010101
陈程吉 20110101 2011010102
单杰妮 20110101 2011010103
陈俏颖 20110102 2011010201
郑晋斌 20110102 2011010202
陶咪箫 20110102 2011010203
陈彦名 20110102 2011010204
陈洪璐 20110103 2011010301
陈笑影 20110103 2011010302
周宇豪 20110103 2011010303
陈俞妃 20110103 2011010304
刘丹丹 20110103 2011010305
黄强 20110103 2011010306
叶力鸣 20110103 2011010307

(14 行受影响)
*/
geniuswjt 2011-08-18
  • 打赏
  • 举报
回复
MD,打了一堆字没了,不打了
geniuswjt 2011-08-18
  • 打赏
  • 举报
回复
知道啊,你先建个自增列,然后再把自增列的值按你的需求update补上前面几位当作学号列不就好了
又不让用row_number()
这样也不让的意思?[Quote=引用 4 楼 bin_520_yan 的回复:]
引用 2 楼 geniuswjt 的回复:
那你加个自增列不就哦了么

是先有的姓名和班级数据,然后根据这些数据生成学号,不是插入的时候产生。
[/Quote]
DataBox-MDX 2011-08-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 geniuswjt 的回复:]
那你加个自增列不就哦了么
[/Quote]
是先有的姓名和班级数据,然后根据这些数据生成学号,不是插入的时候产生。
geniuswjt 2011-08-18
  • 打赏
  • 举报
回复
咦,1楼跑哪去了?
CSDN今天是肿么了?
geniuswjt 2011-08-18
  • 打赏
  • 举报
回复
那你加个自增列不就哦了么
geniuswjt 2011-08-18
  • 打赏
  • 举报
回复
那你加个自增列不就完事了么

27,579

社区成员

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

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