在查询语名在的时候,想实现自动编号
Select Name,Product From TableName
我想在查询的时候添加一个自动编号
怎样实现
不想在创建一个临时表
------解决方案--------------------2005:
create table ta(id int,name int)
insert ta select 1,2 union all select 1,3
select *,row=ROW_NUMBER () over (order by id)
from ta
------解决方案--------------------如果Name不存在重复:
select (select count(*) from TableName where Name <=t.Name) as RowID,Name,Product from TableName t
------解决方案--------------------以下是SQL Server 2005支持的语法:
select *,row=ROW_NUMBER () over (order by id) from ta
------解决方案--------------------Select right( '000 '+rtrim((select count(*) from tablename t where t.name <tablename.name)),3),Name,Product From TableName
------解决方案--------------------2000只有用临时表/新增显示列实现
create table ta(id int,name int)
insert ta select 1,2
union all select 1,3
select *,自编号=1 into # from ta
declare @i int
set @i=0
update # set 自编号=@i,@i=@i+1
查询:
select * from #
------解决方案--------------------select id=(select count(*) from tb where id <=a.id),Name,Product from tb a
------解决方案--------------------mark
------解决方案--------------------学习
------解决方案--------------------如果有主键就行
以下语句完成的功能,为一个有主键的表显示时增加一个序号列,必须有主键才行。
select (select count(*) from gzda where 编号 <=A.编号) as RowID,编号,姓名 from gzda A