有一个查询结果,select * from tbl1
现在要在查询结果的最前面加一列编号(1,2,3,...n)
请问这个sql语句该怎么写

解决方案 »

  1.   

    select  IDENTITY(int, 1,1) as id , * into temp from tbl1
    select * from temp
      

  2.   

    SELECT (SELECT count(*)+1 as dd FROM runlog as a where a.[id]<b.[id]) AS OrderID,* FROM runlog AS b order by b.[id]
      

  3.   

    naner_china(naner):
      是可以的,能不能弄成一句sql,而且希望能解释一下,我会再加分的zzq4823(高原猫):
      你的好象不太有效,有语法错误
      

  4.   

    select 序号=(select sum(1) from 视图 where 关键字<=A.关键字),
    * from  视图 A--测试
    --建表
    Create Table T(stcd varchar(10),name varchar(10))
    insert into T select 's001','A'
    union all select 's002','B'
    union all select 's003','C'
    union all select 's004','D'
    --建视图
    Create View VIEW_T
    as
    select * from T
    --查询
    select 序号=(select sum(1) from VIEW_T where stcd<=A.stcd),*
    from VIEW_T A
    --结果
    序号          stcd       name       
    ----------- ---------- ---------- 
    1           s001       A
    2           s002       B
    3           s003       C
    4           s004       D(4 row(s) affected)