在一表里面,默认是以id号升序排列,但是里面的id号不是1,2,3,4,5这样的,可能会是这样1,3,5,7这样的,
 上一条记录的id号肯定比下一条记录小。
   就是说id号不是按照顺序来的。需要大哥们解决的问题是: 随机得到一个一条记录,怎么算出这条记录在这个表里面是第几条记录?

解决方案 »

  1.   


    select rownumber,* from ( 
    select *, Row_number() over (order by id) as RowNumber from tb) as a where id=101
    结果是3 //在我的测试环境中
      

  2.   

    select count(id) from table where id<9  order by id
      

  3.   


    select top 1 rownumber,* from ( 
    select *, Row_number() over (order by id) as RowNumber from tb) as a order by newid()
    再加上随机功能
      

  4.   

    那就用7楼的方法吧,我这个只支持sql2005
      

  5.   


    id<9  这个9是什么啊?
      

  6.   


    ?  9楼的   id<9   这个9是总条数吗?
      

  7.   

    9楼的  上面的id  那个是已知的id啊?
      

  8.   


    随机的id是已知的  人为输进去的   我意思是9楼上面的那俩个id是不是同一个id的意思
      

  9.   

    唉,这个理解能力...
    查询的sql = "select count(id) from table where id<=" + 你要查询的id号 + " order by id"