一道sql面试题的解答
题目:
写出一条Sql语句:
取出表A中第31到第40记录(SQLServer, 以自动增长的ID作为主键, 注意:ID可能不是连续的。)
解答(已测试):
1、假设ID是连续的:
select top10 *fromAwhereIDnot in(selecttop30 IDfromA)
或
select * fromAwhereIDbetween31and40
2、假设ID是不连续的:
select top40 *fromAexceptselecttop30 *fromA
或
select top10 *fromAwhereID > (selectmax(ID)fromAwhereIDin(select top30 IDfromA))
或
select top10 *fromAwhereIDnot in(selecttop30 IDfromA)