SELECT * FROM dbo.student 
WHERE studentid  in( select * from student where studentid  in
(select top 10 studentid from 
(select top 10 * from student order by studentid) a 
 order by studentid desc) ) 请大家看看错哪了?

解决方案 »

  1.   

    SELECT * FROM dbo.student 
    WHERE studentid  in( select studentid from student where studentid  in 
    (select top 10 studentid from 
    (select top 10 * from student order by studentid) a 
    order by studentid desc) ) 
      

  2.   

    不就等同于:
    SELECT *
    FROM   dbo.student
    WHERE  studentid  IN (SELECT TOP 10 *
                          FROM   student
                          ORDER BY
                                 studentid)吗?
      

  3.   

    二楼改一下:
    SELECT *
    FROM   dbo.student
    WHERE  studentid  IN (SELECT TOP 10 studentid
                          FROM   student
                          ORDER BY
                                 studentid)
      

  4.   

    SELECT * FROM dbo.student 
    WHERE studentid  in( select studentid  from student where studentid  in 
    (select top 10 studentid from 
    (select top 10 * from student order by studentid) a 
    order by studentid desc) ) 
      

  5.   

    这样就OK了。
    SELECT * FROM dbo.student 
    WHERE studentid  in ( 
          select studentid from student where studentid  in 
                       (select top 10 a.studentid from 
                           (select top 10 studentid from student order by studentid) a 
    order by studentid desc)  )
      

  6.   


    SELECT * FROM dbo.student 
    WHERE studentid  in( select studentid  from student where studentid  in 
    (select top 10 studentid from 
    (select top 10 * from student order by studentid) a 
    order by studentid desc) ) WHERE 条件后只能IN 相同的吧,*就不对了,还有这样真的等同于SELECT * FROM dbo.student 
    WHERE studentid  in( select studentid  from student where studentid  in 
    (select top 10 studentid from dbo.student  order by studentid desc) )