一道SQL sqerver的题目

来源:百度知道 编辑:UC知道 时间:2024/06/05 02:06:02
表A中查询从31条到40条的所有信息,(表A是以id为主键,但不一定

是连续的)用SQL server语句完成

(Not In 版本)
SELECT TOP 40-31+1 *
FROM A
WHERE (id NOT IN (SELECT TOP 31-1 id FROM A ))

(Exists版本)
SELECT TOP 40-31+1 * FROM A AS a WHERE Not Exists
(Select * From (Select Top 31-1 * From A order by id) b Where b.id=a.id )
Order by id

使用如下语句能实现:
SELECT * FROM A
WHERE id in (SELECT top 40 id FROM A)
AND id not in (SELECT top 30 id FROM A)

select * from A where
id in
(select top 10 id from
(select top 40 id from A order by id) as B order by B.id desc)

select top 10 * from
(select top 40 * from A order by id desc) as b order by id desc