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

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

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

2024-08-31 00:44:45
字體:
來源:轉載
供稿:網友
以查詢前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時,整型列不能描述一個列,所以會產生非預期的效果. 待考慮下,有什么辦法可以修改為想要的結果.
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平远县| 许昌市| 房产| 出国| 磴口县| 澄江县| 哈巴河县| 文山县| 喀什市| 舞钢市| 连山| 凉山| 玉屏| 防城港市| 康马县| 孝义市| 谢通门县| 甘南县| 昌图县| 罗甸县| 始兴县| 吉安市| 聂荣县| 霍城县| 汾西县| 淳化县| 安塞县| 饶平县| 泾阳县| 黔西县| 都兰县| 海淀区| 靖西县| 滁州市| 讷河市| 万载县| 无棣县| 罗平县| 巴里| 灵川县| 宁南县|