请教EXCEPT排序的问题

defent 2018-06-13 10:54:06
(SELECT top 300 id,name FROM price order by id desc) except (SELECT top 270 id,name FROM price order by id desc)

没有用过EXCEPT,因为想用它分页,不知道怎么用,请大神帮忙
...全文
201 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
OwenZeng_DBA 2018-06-13
  • 打赏
  • 举报
回复
引用 楼主 defent 的回复:
(SELECT top 300 id,name FROM price order by id desc) except (SELECT top 270 id,name FROM price order by id desc) 没有用过EXCEPT,因为想用它分页,不知道怎么用,请大神帮忙
用EXCEPT分页?他不是用来分页的啊
二月十六 2018-06-13
  • 打赏
  • 举报
回复
SELECT *
FROM
(
    (SELECT TOP 300
         id,
         name
     FROM price
     ORDER BY id DESC)
    EXCEPT
    (SELECT TOP 270
         id,
         name
     FROM price
     ORDER BY id DESC)
) t
ORDER BY id DESC;
吉普赛的歌 2018-06-13
  • 打赏
  • 举报
回复
分页现在基本是固定的几种方式, 各种效率都测试过了, 不需要再另外自己造轮子:
--SQL Server 2005, 2008 的分页
SELECT * FROM (
	SELECT ROW_NUMBER() OVER (ORDER BY sv.number) AS rid,*
	FROM [master].dbo.spt_values AS sv 
	WHERE sv.[type]='P' AND sv.number>0
) AS t WHERE t.rid>270 AND t.rid<=300

--SQL Server 2012+ 的分页
SELECT *
FROM [master].dbo.spt_values AS sv 
WHERE sv.[type]='P' AND sv.number>0
ORDER BY sv.number
OFFSET 270 ROWS 
FETCH NEXT 30 ROWS ONLY

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧