sqlserver2000 求一条sql语句

qiezhiw178747 2016-02-27 11:26:53
请教各位大神
有现有一张表
我想修改列ddh(订单号)的数据, 格式为001,002,003,004..... 这样, 第一行ddb为001, 如果第二行name字段和第一行相同,则ddb为001,如果name不同,则ddb要递增为002,还有一点就是连续10行name字段都相同的情况下,下一行ddb也要递增,以此类推
结果就要这样

用update语句也好,用生成临时表的方式也可以
...全文
141 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiezhiw178747 2016-02-27
  • 打赏
  • 举报
回复
貌似不能用啊
gw6328 2016-02-27
  • 打赏
  • 举报
回复

DECLARE @t TABLE(rowid int IDENTITY(1,1),ddh VARCHAR(10),NAME VARCHAR(10));

INSERT INTO @t(ddh,name) VALUES 
('0','n1'),('0','n1'),('0','n1'),('0','n1'),('0','n1'),('0','n1'),('0','n1'),('0','n1'),('0','n1'),('0','n1'),('0','n1')
,('0','n2'),('0','n2'),('0','n2')
,('0','n3'),('0','n3'),('0','n3'),('0','n3'),('0','n3'),('0','n3'),('0','n3'),('0','n3'),('0','n3'),('0','n3'),('0','n3'),('0','n3')
,('0','n4')

SELECT sno=(SELECT RIGHT('0000'+CAST(COUNT(DISTINCT gp) AS VARCHAR(10)),3) FROM 
	(
		SELECT rn1-rn AS gp ,* FROM (
		SELECT rn=(SELECT COUNT(1)%10 FROM @t a WHERE a.name=x.NAME AND a.rowid<=x.rowid)
		,rn1=(SELECT COUNT(1) FROM @t b WHERE rowid<=x.rowid),* FROM @t x
		) w
	)u1 WHERE u1.gp<=u.gp
),* FROM (
		SELECT rn1-rn AS gp ,* FROM (
		SELECT rn=(SELECT COUNT(1)%10 FROM @t a WHERE a.name=x.NAME AND a.rowid<=x.rowid)
		,rn1=(SELECT COUNT(1) FROM @t b WHERE rowid<=x.rowid),* FROM @t x
	) w
) u


改改应该能在2000下用哈。2000主要是以count来生成序号。
qiezhiw178747 2016-02-27
  • 打赏
  • 举报
回复
有高手帮忙解决 吗

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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