不管记录和表结构,只想查询出数据库的的第3条,第5条,第8条记录,这个SQL怎么写啊。
select * from table_name where ? in (3,5,8)自己瞎想的,谁能帮忙下啊

解决方案 »

  1.   


    select * from
    (select *,num=(select count(*) from tb b where b.id<a.id) from tb a) a
    where a.num in('3','5','8')
      

  2.   

    select tid=identity(int,1,1),* into # from tbselect col1,col2,... from # where tid in(3,5,8) --除tid外的所有列drop table #
      

  3.   

    有自增列情况:
    SELECT  *
    FROM 
    (SELECT * , (SELECT COUNT(*) AS NUM FROM LI T WHERE T.ID <= A.ID) FROM LI A) LO 
    WHERE A.NUM IN (3,5,8)  没有自增列情况:
    SELECT *
    FROM 
    (
    SELECT ROW_NUMBER() OVER(ORDER BY GETDATE()) AS RID,*
    FROM LI) LO 
    WHERE LO.RID IN (3,5,8)  
      

  4.   

    明白了,生成一个有自增ID的临时表,然后从里面在取。。谢谢大家感动ing。。