select id from 表 where 条件 order by id asc
我已经知道id=5在查询结果里,我如何知道id=5在检索结果的第几个?比如如果检索结果为1 5 8 9,那么id=5在检索结果的第2个.这个查询该如何写,谢谢!!!

解决方案 »

  1.   

    Select Count(id) From 
    (select id from 表 where 条件 order by id asc) A
    Where id <= 5
      

  2.   

    select identity(int,1,1) as id_no,id into #temp from 表 where 条件 order by id asc
    select * from #temp where 条件
      

  3.   

    select (select count(1)+1 from # where id>a.id) from # aselect id,名次=(select count(1)+1 from # where id<a.id) from # a
    where id=5
      

  4.   

    错了
    改下
    select * into # from
    (
    select id from 表 where 条件 order by id asc
    )aselect id,名次=(select count(1)+1 from # where id<a.id) from # a
    where id=5
      

  5.   

    select identity(int,1,1) number,id into #tmp from 表 where 条件 order by id asc
    --number的值就表示id=5在检索结果的第几个。
    select number from #tmp where id=5
    drop table #tmp
    go