sql 自动增加排序 并且初始值是000001

qq_23836243 2016-03-28 11:56:47
想让这个表里面的所有数据排序 ,并且初始值是000001,这个语句大神们知道怎么写么。结果要如下图
...全文
749 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_23836243 2016-03-28
  • 打赏
  • 举报
回复
大腿在哪 求大腿
qq_23836243 2016-03-28
  • 打赏
  • 举报
回复
我想让结果 ,像左边的图那样 000001一直排序到00000N 有多少条 排序到多少 。求大腿
中国风 2016-03-28
  • 打赏
  • 举报
回复
用个标识列ID,把no列改为计算列RIGHT(1000000+ID,6)
zbdzjx 2016-03-28
  • 打赏
  • 举报
回复
update是不可能增加行的啊。 修改表结构,新增一列col_temp,为自增长列。序号就从1、2、3……开始了。 然后 update 表 set col_no=RIGHT('000000'+convert(varchar, col_temp),6)
引用 12 楼 qq_23836243 的回复:
[quote=引用 10 楼 zbdzjx 的回复:] 增加一列,自动编号的,然后通过这列update,最后再删除这列。
我这些数据都是现成的,刚刚按照你的方法做了一下 发现多了2000行数据 ,变成4000行了 。请指点一下迷津啊[/quote]
qq_23836243 2016-03-28
  • 打赏
  • 举报
回复
引用 10 楼 zbdzjx 的回复:
增加一列,自动编号的,然后通过这列update,最后再删除这列。
我这些数据都是现成的,刚刚按照你的方法做了一下 发现多了2000行数据 ,变成4000行了 。请指点一下迷津啊
顾西昂 2016-03-28
  • 打赏
  • 举报
回复
参照#10,大哥你要学会变通啊
zbdzjx 2016-03-28
  • 打赏
  • 举报
回复
增加一列,自动编号的,然后通过这列update,最后再删除这列。
qq_23836243 2016-03-28
  • 打赏
  • 举报
回复
引用 8 楼 SugarToffee 的回复:

update tab set co_num=Right('000000'+cast(row_number() over (order by ... ) as varchar(6)),6) 
试试吧
遗憾的是 数据库是 2000 不支持row_number() over
顾西昂 2016-03-28
  • 打赏
  • 举报
回复

update tab set co_num=Right('000000'+cast(row_number() over (order by ... ) as varchar(6)),6) 
试试吧
顾西昂 2016-03-28
  • 打赏
  • 举报
回复
引用 6 楼 qq_23836243 的回复:
[quote=引用 5 楼 SugarToffee 的回复:] trigger里面写

declare @co_num  int,
               @CoNum varchar(6)
select co_num=count(*)+1 from tab                 --获取插入数据的序号
SET @CoNum=RIGHT('000000'+cast(@co_num as varchar(6)),6)--转换成需要的格式
--后面自己插入即可

终于有人回答了,QAQ 但是我的意思是 这个表里面有2000多条固定的数据 我想让第一条显示0000001 ,第2000条 显示 0020000[/quote] 有个函数row_number() over,获取出行数然后同一种思路更新到co_num
qq_23836243 2016-03-28
  • 打赏
  • 举报
回复
引用 5 楼 SugarToffee 的回复:
trigger里面写

declare @co_num  int,
               @CoNum varchar(6)
select co_num=count(*)+1 from tab                 --获取插入数据的序号
SET @CoNum=RIGHT('000000'+cast(@co_num as varchar(6)),6)--转换成需要的格式
--后面自己插入即可

终于有人回答了,QAQ 但是我的意思是 这个表里面有2000多条固定的数据 我想让第一条显示0000001 ,第2000条 显示 0020000
顾西昂 2016-03-28
  • 打赏
  • 举报
回复
trigger里面写

declare @co_num  int,
               @CoNum varchar(6)
select co_num=count(*)+1 from tab                 --获取插入数据的序号
SET @CoNum=RIGHT('000000'+cast(@co_num as varchar(6)),6)--转换成需要的格式
--后面自己插入即可

顾西昂 2016-03-28
  • 打赏
  • 举报
回复
如果是插入的话写个insert触发器, 将co_num转换成int类型然后正常排序叠加, 转换成varcahr格式然后补个一定位数的0在前面后截取字符串。
qq_23836243 2016-03-28
  • 打赏
  • 举报
回复
求大家帮忙解决一下

22,207

社区成员

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

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