一道sql面試題的解答

iSQlServer發表於2010-06-25

題目:

  寫出一條Sql語句:

    取出表A中第31到第40記錄(SQLServer, 以自動增長的ID作為主鍵,  注意:ID可能不是連續的。)

 

解答(已測試):

  1、假設ID是連續的:

    select top 10 * from A where ID not in (select top 30 ID from A)

  或

    select  *  from A where ID between 31 and 40

 

  2、假設ID是不連續的:

     select top 40 * from A except select top 30 * from A

  或

    select top 10 * from A where ID > (select max(ID) from A where ID in (select top 30 ID from A))

     或

    select top 10 * from A where ID not in (select top 30 ID from A) 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-666201/,如需轉載,請註明出處,否則將追究法律責任。

相關文章