SQL行號排序和分頁(SQL查詢中插入行號 自定義分頁
導讀:1建站知識如何在SQL中對行進行動態編號,加行號這個問題,在數據庫查詢中,是經典的問題建設網站高端網站建設。
(一)行號顯示和排序 1.SQL Server的行號 A.SQL 2000使用identity(int,1,1)和臨時表,可以顯示行號 SELECT identity(int,1,1) AS ROWNUM, [DataID] INTO #1 FROM DATAS order by DataID; SELECT * FROM #1 B.SQL 2005提供一個很好用的函數row_number(), 可以直接用來顯示行號,當然也可以使用SQL 2000的identity SELECT row_number()over(ORDER BY DataID) AS ROWNUM, [DataID] FROM DATAS; 這里如果添加排序功能,則先排序再添加行號 2.ORACLE的行號顯示 使用ROWNUM SELECT ROWNUM, [DataID] FROM DATAS order by DataID 注意:先加行號再排序,如果想排序好再加行號就要使用子查詢 3.取前n條數據 A.SQL版 select top n [DataID] from DATAS B.ORACLE版 SELECT [DataID] FROM DATAS where ROWNUM<高端網站建設;=n 其中,n>=1 ORACLE的ROWNUM不能應用于大于,只能 ROWNUM= 1, 或者<= 大于1 的自然數 (二)SQL分頁的幾種方式 以每頁10條數據為例,查詢第三頁數據,即21-30這些記錄 1.分頁方案一:(利用Not In和SELECT TOP分頁) 語句形式:
復制代碼 代碼如下:
SELECT TOP 10 * FROM DATAS WHERE DataID NOT IN (SELECT TOP 20 DataID FROM DATAS ORDER BY DataID) ORDER BY DataID
2.分頁方案二:(利用ID大于多少和SELECT TOP分頁) 語句形式:復制代碼 代碼如下:
SELECT TOP 10 * FROM DATAS WHERE ID > (SELECT MAX(DataID) FROM (SELECT TOP 20 DataID FROM DATAS ORDER BY DataID) AS T) ORDER BY DataID
3.分頁方案三復制代碼 代碼如下:
select top 10 DataID from (SELECT top 30 [DataID] FROM DATAS order by dataid desc) A ORDER BY DataID
4.分頁方案四:(利用SQL的游標存儲過程分頁)復制代碼 代碼如下:
create procedure SqlPager @sql nvarchar(8000), --查詢字符串 @curpage int, --第N頁 @pagesize int --每頁行數 as set nocount on declare @P int, --P是游標的id @rowcount int exec sp_cursoropen @P output,@sql,@scrollopt=1,@ccopt=1, @rowcount=@rowcount output select ceiling(1.0*@rowcount/@pagesize) as 總頁數,@rowcount as 總行數,@curpage as 當前頁 set @curpage=(@curpage-1)*@pagesize+1 exec sp_cursorfetch @P,16,@curpage,@pagesize exec sp_cursorclose @P set nocount off
方法整理如下: 代碼基于pubs樣板數據庫 在SQL中,一般就這兩種方法. 1.使用臨時表 可以使用select into 創建臨時表,在第一列,加入Identify(int,1,1)作為行號, 這樣在產生的臨時表中,結果集就有了行號.也是目前效率最高的方法. 這種方法不能用于視圖復制代碼 代碼如下:
set nocount on select IDentify(int,1,1) 'RowOrder',au_lname,au_fname into #tmp from authors select * frm #tmp drop table #tmp
2.使用自連接 不用臨時表,在SQL語句中,動態的進行排序.這種方法用到的連接是自連接,連接關系一般是 大于,聲明: 本文由我的SEOUC技術文章主頁發布于:2023-05-23 ,文章SQL行號排序和分頁(SQL查詢中插入行號 自定義分頁主要講述行號,分頁,SQL網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/web_5944.html