如何在创建视图时建立一新列id(自动编号)?

xxwnet 2006-08-03 09:17:34
如题:
...全文
385 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2006-08-03
  • 打赏
  • 举报
回复
2005可以用row_number了

select id=row_number() over(order by id), * from 表
zjcxc 元老 2006-08-03
  • 打赏
  • 举报
回复
2000可以利用主键生成这样的编号, 参考2楼的
ReViSion 2006-08-03
  • 打赏
  • 举报
回复
如果行的话,分页就不用那么麻烦啦
ReViSion 2006-08-03
  • 打赏
  • 举报
回复
不行
xxwnet 2006-08-03
  • 打赏
  • 举报
回复
不对,我a.id就有重复的
xyxfly 2006-08-03
  • 打赏
  • 举报
回复
恩,类似于插入ID到临时表
hellowork 2006-08-03
  • 打赏
  • 举报
回复
抱歉,更正一下(在上面的视图定义中去掉order by newid):
create view viewTest
as
select newid = (select count(*) from table where id >= a.id ), *
from table a ----去掉order by newid
GO
select * from viewTest order by newid
hellowork 2006-08-03
  • 打赏
  • 举报
回复
如果楼主的表中有IDENTITY标识列的话(例如id),可以这样:
create view viewTest
as
select newid = (select count(*) from table where id >= a.id ), *
from table a order by newid
GO
select * from viewTest order by newid

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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