首頁 資料庫 mysql教程 存储过程-简单通用分页

存储过程-简单通用分页

Jun 07, 2016 pm 03:28 PM
create 分頁 儲存 簡單 過程 一般

create PROCEDURE [dbo].[GetPageDataOutRowNumber](@tn nvarchar(30),--表名称@idn nvarchar(20),--表主键名称@pi int = 1,--当前页数 @ps int = 7,--每页大小 @wh nvarchar(255) = ,--wehre查询条件@oby nvarchar(255) = ,--orderby 排序@rc int output,--

 

create PROCEDURE [dbo].[GetPageDataOutRowNumber]
(
@tn nvarchar(30),--表名称
@idn nvarchar(20),--表主键名称
@pi int = 1,--当前页数 
@ps  int = 7,--每页大小 
@wh nvarchar(255) = '',--wehre查询条件
@oby nvarchar(255) = '',--orderby 排序
@rc int output,--总行数(传出参数)
@pc int output--总页数(传出参数)
)
AS
DECLARE @sql NVARCHAR(225)='',@sqlCount NVARCHAR(225)=''
--1.计算总行数和总页数
SET @sqlCount = 'SELECT @rc=COUNT(['+@idn+']),@pc=CEILING((COUNT('+@idn+')+0.0)/'+ CAST(@ps AS VARCHAR)+') FROM ' + @tn
IF LEN(@wh)>1
	set @sqlCount=@sqlCount+' WHERE '+@wh
print @sqlCount
EXEC SP_EXECUTESQL @sqlCount,N'@rc INT OUTPUT,@pc INT OUTPUT',@rc OUTPUT,@pc OUTPUT
--2.分页
--2.1如果是第一页,则直接查询
IF @pi = 1
BEGIN
	SET @sql='SELECT TOP '+str(@ps) +' * FROM '+@tn
	IF LEN(@wh)>1
		set @sql=@sql+' WHERE '+@wh
	IF LEN(@oby)>1
			SET @sql=@sql+' order by ' +@oby
EXEC(@sql)
END
ELSE--2.2如果不是第一页,则拼接查询语句
BEGIN
	SET NOCOUNT ON
	SET @sql='SELECT * FROM (select row_number() over(order by '
	IF LEN(@oby)>1
		set @sql=@sql + @oby+') as rowNum,* from '+@tn
	else
		set @sql=@sql + @idn+') as rowNum,* from '+@tn
	IF LEN(@wh)>1
		set @sql=@sql+' where '+@wh
	set @sql=@sql+&#39;)as temp where rowNum>&#39;+str(@ps * (@pi-1))+&#39; and rowNum<=&#39;+str(@ps*@pi)
	print @sql
	EXEC(@sql)
	SET NOCOUNT OFF
END

--测试语句
declare @rc int,@pc int
exec [GetPageDataOutRowNumber] &#39;Ams_Area&#39;,&#39;ar_id&#39;,2,5,&#39;&#39;,&#39; ar_id desc&#39;,@rc output,@pc output
select @rc,@pc
登入後複製
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1665
14
CakePHP 教程
1424
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
最簡單的硬碟序號查詢方式 最簡單的硬碟序號查詢方式 Feb 26, 2024 pm 02:24 PM

硬碟序號是硬碟的一個重要標識,通常用於唯一標識硬碟以及進行硬體識別。在某些情況下,我們可能需要查詢硬碟序號,例如在安裝作業系統、尋找正確裝置驅動程式或進行硬碟維修等情況下。本文將介紹一些簡單的方法,幫助大家查詢硬碟序號。方法一:使用Windows命令提示字元開啟命令提示字元。在Windows系統中,按下Win+R鍵,輸入"cmd"並按下回車鍵即可開啟命

華為明年將推創新 MED 儲存產品:機架容量超過 10 PB,功耗低於 2 kW 華為明年將推創新 MED 儲存產品:機架容量超過 10 PB,功耗低於 2 kW Mar 07, 2024 pm 10:43 PM

本站3月7日訊息,華為資料儲存產品線總裁週躍峰博士日前出席MWC2024大會,專門展示了為溫資料(WarmData)和冷資料(ColdData)設計的新一代OceanStorArctic磁電儲存解決方案。華為資料儲存產品線總裁週躍峰發布系列創新解決方案圖來源:華為本站附上華為官方新聞稿內容如下:該方案的成本比磁帶低20%,功耗比硬碟低90%。根據國外科技媒體blocksandfiles報道,華為發言人也透露了關於該磁電儲存解決方案的資訊:華為的磁電磁碟(MED)是對磁性儲存媒體的重大創新。第一代ME

如何透過PHP編寫一個簡單的線上預約系統 如何透過PHP編寫一個簡單的線上預約系統 Sep 26, 2023 pm 09:55 PM

如何透過PHP編寫一個簡單的線上預約系統隨著網路的普及和使用者對便利性的追求,線上預約系統越來越受到歡迎。無論是餐廳、醫院、美容院或其他服務業,都可以透過簡單的線上預約系統來提高效率並為使用者提供更好的服務體驗。本文將介紹如何使用PHP編寫一個簡單的線上預約系統,並提供具體的程式碼範例。建立資料庫和表格首先,我們需要建立一個資料庫來儲存預約資訊。在MyS

如何使用Java來寫一個簡單的學生成績報表產生器? 如何使用Java來寫一個簡單的學生成績報表產生器? Nov 03, 2023 pm 02:57 PM

如何使用Java來寫一個簡單的學生成績報表產生器?學生成績報表產生器是可以幫助老師或教育者快速產生學生成績報告的工具。本文將介紹如何使用Java來撰寫簡單的學生成績報表產生器。首先,我們要定義學生對象和學生成績對象。學生對象包含學生的姓名、學號等基本訊息,而學生成績對象則包含學生的科目成績和平均成績等資訊。以下是一個簡單的學生物件的定義:public

如何使用 JavaScript 實作表格分頁功能? 如何使用 JavaScript 實作表格分頁功能? Oct 20, 2023 pm 06:19 PM

如何使用JavaScript實作表格分頁功能?隨著網路的發展,越來越多的網站都會使用表格來展示數據。在某些資料量較大的情況下,需要將資料進行分頁展示,以提升使用者體驗。本文將介紹如何使用JavaScript實作表格分頁功能,並提供具體的程式碼範例。一、HTML結構首先,我們需要準備一個HTML結構來承載表格和分頁按鈕。我們可以使用&lt;tab

Ubuntu上的Git安裝流程 Ubuntu上的Git安裝流程 Mar 20, 2024 pm 04:51 PM

Git是一個快速、可靠、適應性強的分散式版本控制系統。它旨在支援分散式的非線性工作流程,使其成為各種規模的軟體開發團隊的理想選擇。每個Git工作目錄都是一個獨立的儲存庫,具有所有更改的完整歷史記錄,並且能夠追蹤版本,即使沒有網路存取或中央伺服器。 GitHub是託管在雲端的Git儲存庫,它提供了分散式修訂控制的所有功能。 GitHub是Git的儲存庫,託管在雲端。與作為CLI工具的Git不同,GitHub有一個基於Web的圖形使用者介面。它用於版本控制,這涉及與其他開發人員協作,並追蹤隨時間推移對腳本和

如何透過C++寫一個簡單的掃雷遊戲? 如何透過C++寫一個簡單的掃雷遊戲? Nov 02, 2023 am 11:24 AM

如何透過C++寫一個簡單的掃雷遊戲?掃雷遊戲是一款經典的益智類遊戲,它要求玩家根據已知的雷區佈局,在沒有踩到地雷的情況下,揭示所有的方塊。在這篇文章中,我們將介紹如何使用C++來寫一個簡單的掃雷遊戲。首先,我們需要定義一個二維陣列來表示掃雷遊戲的地圖。數組中的每個元素可以是一個結構體,用於儲存方塊的狀態,例如是否揭示、是否有雷等資訊。另外,我們還需要定義

如何透過C++寫一個簡單的音樂推薦系統? 如何透過C++寫一個簡單的音樂推薦系統? Nov 03, 2023 pm 06:45 PM

如何透過C++寫一個簡單的音樂推薦系統?引言:音樂推薦系統是現代資訊科技的研究熱點,它可以根據使用者的音樂偏好和行為習慣,向使用者推薦符合其口味的歌曲。本文將介紹如何使用C++來寫一個簡單的音樂推薦系統。一、收集用戶資料首先,我們需要收集用戶的音樂偏好資料。可以透過線上調查、問卷調查等方式來獲得使用者對不同類型音樂的喜好程度。將資料保存在一個文字檔案或資料庫

See all articles