以查詢前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 i程式設計客棧d aswww.cppcns.comc)
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時,整型列不能描述乙個列,所以會產生非預bs**fr期的效果. 待考慮下,有什麼辦法可以修改為想要的結果.
本文標題: sql 查詢記錄數結果集某個區間內記錄
本文位址: /shujuku/mssql/90317.html
sql查詢結果集匯出Excel
t sql exec master.xp cmdshell bcp 庫名.dbo.表名out c temp.xls c q s servername u sa p 引數 s 是sql伺服器名 u是使用者 p是密碼 說明 還可以匯出文字檔案等多種格式 declare str varchar 600 s...
mysql查詢結果翻轉 如何把sql結果集翻轉
我用的是sql 請教如何把sql結果集翻轉?如下一張表 checkinout 顯示員工簽到,簽退的考勤表,checktype 考勤型別 i 表示簽到,o 表示簽退 timeflag 4表示上午,5表示下午 checktime 簽到,籤 userid checktype checktime timef...
SQL 臨時結果集CTE查詢總結
cte是乙個命名的臨時結果集,僅在單個sql語句 例如select,insert或delete 的執行範圍內存在。cte不作為物件儲存,僅在查詢執行期間持續,提供了更好的可讀性和效能。可以使用with子句來建立cte,with子句用於定義乙個子查詢關係,以供select查詢引用,它可以扁平化巢狀查詢...