国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

sql 查詢記錄數結果集某個區間內記錄

2024-08-31 00:56:58
字體:
來源:轉載
供稿:網友
以查詢前20到30條為例,主鍵名為id

方法一: 先正查,再反查
select top 10 * from (select top 30 * from tablename order by id asc) A order by id desc

方法二: 使用left join
select top 10 A.* from tablename A
left outer join (select top 20 * from tablename order by id asc) B
on A.id = B.id
where B.id is null
order by A.id asc

方法三: 使用not exists
select top 10 * from tablename A
where id not exists
(select top 20 * from tablename B on A.id = B.id)

方法四: 使用not in
select top 10 * from tablename
where id not in
(select top 20 id from tablename order by id asc)
order by id asc

方法五: 使用rank()
select id from
(select rank() over(order by id asc) rk, id from tablename) T
where rk between 20 and 30

中第五種方法看上去好像沒有問題,查了下文檔,當over()用于rank/row_number時,整型列不能描述一個列,所以會產生非預期的效果. 待考慮下,有什么辦法可以修改為想要的結果.
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西林县| 吉首市| 赞皇县| 宜阳县| 鄂尔多斯市| 舟曲县| 岱山县| 鸡西市| 张家口市| 崇明县| 东辽县| 哈巴河县| 余庆县| 卢湾区| 郁南县| 左云县| 惠东县| 宣汉县| 青河县| 湄潭县| 尉氏县| 盘山县| 黄骅市| 手游| 武定县| 长兴县| 洛川县| 台山市| 宁化县| 柳江县| 西吉县| 桃园市| 新巴尔虎右旗| 当雄县| 屏东县| 且末县| 莆田市| 永顺县| 丘北县| 英德市| 镇安县|