如何为查询到的所有记录按顺序编号(1-n)?能通过一个SQL实现吗?

解决方案 »

  1.   

    select top n * from table order by 排序字段
    n为显示的记录条数
      

  2.   

    select top n * from table order by fieldname
    n为记录数
      

  3.   

    没有明白你的意思,你可以设置一个字段专门用来个一记录编号的;
    如果没有的话,用ADOQUEYR。RECNO可以吗?
      

  4.   

    如果用SQL的话,可以用子查询来实现(这样可能会对速度多少有影响哦,不过如用于分组编号的话,我还没发现比这更好的实现方法,或者说还没发明可实现的方法)
    也可以如outer2000(天外流星)所说,通过数据集的RecNo来实现
      

  5.   

    select top n * from table order by 编号
    n为显示的记录条数
      

  6.   

    select top n * from table order by 编号
    n为显示的记录条数
      

  7.   

    用一个SQL 还有点难啊
    要是用一个有标识字段的临时表就可以解决了
    呵呵不过要有三个SQL语句
      

  8.   

    sql server中不用临时表
    用select top n identity(int,1,1), * from table order by idfield
      

  9.   

    select IDENTITY(int, 1, 1) as myid,品名 into test from 品名
    select * from test
    新生成的test表中的序号1-n
    注意用select into语句时要检查test是否存在,如果存在,请先删除;IF EXISTS(SELECT name 
      FROM   sysobjects 
      WHERE  name = N'test' 
      AND   type = 'U')
        DROP TABLE test
    GO
      

  10.   

    对firetoucher(风焱) 的有点异义因为在SQL SERVER中INDENTITY()只能用在SELECT 。。INTO。。的句子中
    所以还是如我上面所应该说的,至少要三个语句,等待高手再精减select top nidentity(int,1,1), * into #table1 from table order by idfield
    select * From #table1
    drop #table1
      

  11.   

    对,没有into不行的;照我上面说的去做吧
      

  12.   

    在客户端处理吧
    用计算字段
    或者用其他DBGrid控件
      

  13.   

    我都试过了,应该是
    IF EXISTS(SELECT name 
      FROM   sysobjects 
      WHERE  name = N'test' 
      AND   type = 'U')
        DROP TABLE test
    GOselect IDENTITY(int, 1, 1) as id,用户别名 into test from wz_qxgl_yhsz
    select * from test