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

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

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

2020-07-25 13:12:12
字體:
來源:轉載
供稿:網友
以查詢前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時,整型列不能描述一個列,所以會產生非預期的效果. 待考慮下,有什么辦法可以修改為想要的結果.
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 兴义市| 鸡泽县| 安丘市| 柯坪县| 波密县| 五华县| 斗六市| 荣成市| 兴安县| 三台县| 阿图什市| 和龙市| 新化县| 新田县| 通许县| 武陟县| 滕州市| 资溪县| 曲沃县| 左云县| 新邵县| 正宁县| 崇信县| 云梦县| 隆昌县| 衡水市| 天全县| 进贤县| 双柏县| 友谊县| 新津县| 河西区| 金坛市| 麻城市| 铅山县| 无棣县| 漳州市| 宿州市| 武安市| 古浪县| 澄城县|