當前位置:首頁 » 編程語言 » 分頁查詢sql語句實例
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

分頁查詢sql語句實例

發布時間: 2023-05-25 12:19:04

1. mysql分頁查詢語句怎麼寫

--1.最常用的分頁
select * from content order by id desc limit 0, 10;
--limit是MySQL中特有的分頁語法,用法如下:
--舉例:
select * from tableName limit 5; --返回前扒旦答數5行
select * from tableName limit 0,5; --同上,春舉擾返回前5行
select * from tableName limit 5,10; --返回6-15行

2. SQL分頁查詢,求高手指點

oracle 的話可以用 rownum
select * from ( 你的語句 ) where rownum <11
select * from ( 你的語句 ) where rownum >10 and rownum < 21

sqlserver的話用 ROW_NUMBER()

3. sql資料庫分頁(資料庫分頁查詢sql語句)

樓主,剛剛有個問友和你問的差不多,我剛回答了他激睜的。就直接把剛回答的復制給你看看啦。希望對你有幫助、。

要想分頁,首先得做好准備工作。你要先聲明每頁顯示多少條數據,還得獲取當前選擇的是多少頁的頁碼。有了這兩個分頁就好辦了。

sql如下:selecttop10fromtableName

where(idnotin())orderbyIddesc

分頁需要使用到的一些動態數據如下:

每頁顯示的數量:自己定義。

總頁數:數據總條數/每頁顯示的條數

當前頁碼的計算方法:(頁碼-1)*每頁顯示的數量。比如我要瀏覽第3頁的數據,3從客戶端傳送過來後,在後台對頁碼進行處理:(3-1)*每頁顯示的數量(假如是10).算出來後的結果就是20.你在把20以參數注入的方式動態添明瞎歲加到上神灶面那個20那裡就ok了。

sql中的10表示你每頁顯示的數據,這里跟10,就代表每頁顯示10條。(你可以定義一個常量作為每頁顯示的條數)

where中的20表示不包括前面的20條數據,也就是查詢出從第21條到30之間的數據。

不知道我這樣說你是否理解,其實只要理解了sql語句,分頁就很好做了。

4. 用SQL語句怎麼實現資料庫分頁

CREATE PROC sp_PageView
@tbname sysname, --要分頁顯示的表名
@FieldKey nvarchar(1000), --用於定位記錄的主鍵(惟一鍵)欄位,可以是逗號分隔的多個欄位
@PageCurrent int=1, --要顯示的頁碼
@PageSize int=10, --每頁的大小(記錄數)
@FieldShow nvarchar(1000)='', --以逗號分隔的要顯示的欄位列表,如果不指定,則顯示所有欄位
@FieldOrder nvarchar(1000)='', --以逗號分隔的排序欄位列表,可以指定在欄位後面指定DESC/ASC用於指定排序順序
@Where nvarchar(1000)='', --查詢條件
@PageCount int OUTPUT --總頁數
AS
SET NOCOUNT ON
--檢查對象是否有效
IF OBJECT_ID(@tbname) IS NULL
BEGIN
RAISERROR(N'對象"%s"不存在',1,16,@tbname)
RETURN
END
IF OBJECTPROPERTY(OBJECT_ID(@tbname),N'IsTable')=0
AND OBJECTPROPERTY(OBJECT_ID(@tbname),N'IsView')=0
AND OBJECTPROPERTY(OBJECT_ID(@tbname),N'IsTableFunction')=0
BEGIN
RAISERROR(N'"%s"不是表、視圖或者表值函數',1,16,@tbname)
RETURN
END

--分頁欄位檢查
IF ISNULL(@FieldKey,N'')=''
BEGIN
RAISERROR(N'分頁處理需要主鍵(或者惟一鍵)',1,16)
RETURN
END

--其他參數檢查及規范
IF ISNULL(@PageCurrent,0)<1 SET @PageCurrent=1
IF ISNULL(@PageSize,0)<1 SET @PageSize=10
IF ISNULL(@FieldShow,N'')=N'' SET @FieldShow=N'*'
IF ISNULL(@FieldOrder,N'')=N''
SET @FieldOrder=N''
ELSE
SET @FieldOrder=N'ORDER BY '+LTRIM(@FieldOrder)
IF ISNULL(@Where,N'')=N''
SET @Where=N''
ELSE
SET @Where=N'WHERE ('+@Where+N')'

--如果@PageCount為NULL值,則計算總頁數(這樣設計可以只在第一次計算總頁數,以後調用時,把總頁數傳回給存儲過程,避免再次計算總頁數,對於不想計算總頁數的處理而言,可以給@PageCount賦值)
IF @PageCount IS NULL
BEGIN
DECLARE @sql nvarchar(4000)
SET @sql=N'SELECT @PageCount=COUNT(*)'
+N' FROM '+@tbname
+N' '+@Where
EXEC sp_executesql @sql,N'@PageCount int OUTPUT',@PageCount OUTPUT
SET @PageCount=(@PageCount+@PageSize-1)/@PageSize
END

--計算分頁顯示的TOPN值
DECLARE @TopN varchar(20),@TopN1 varchar(20)
SELECT @TopN=@PageSize,
@TopN1=@PageCurrent*@PageSize

--第一頁直接顯示
IF @PageCurrent=1
EXEC(N'SELECT TOP '+@TopN
+N' '+@FieldShow
+N' FROM '+@tbname
+N' '+@Where
+N' '+@FieldOrder)
ELSE
BEGIN
--生成主鍵(惟一鍵)處理條件
DECLARE @Where1 nvarchar(4000),@s nvarchar(1000)
SELECT @Where1=N'',@s=@FieldKey
WHILE CHARINDEX(N',',@s)>0
SELECT @s=STUFF(@s,1,CHARINDEX(N',',@s),N''),
@Where1=@Where1
+N' AND a.'+LEFT(@s,CHARINDEX(N',',@s)-1)
+N'='+LEFT(@s,CHARINDEX(N',',@s)-1)
SELECT @Where1=STUFF(@Where1+N' AND a.'+@s+N'='+@s,1,5,N''),
@TopN=@TopN1-@PageSize

--執行查詢
EXEC(N'SET ROWCOUNT '+@TopN1
+N' SELECT '+@FieldKey
+N' INTO # FROM '+@tbname
+N' '+@Where
+N' '+@FieldOrder
+N' SET ROWCOUNT '+@TopN
+N' DELETE FROM #'
+N' SELECT '+@FieldShow
+N' FROM '+@tbname
+N' a WHERE EXISTS(SELECT * FROM # WHERE '+@Where1
+N') '+@FieldOrder)
END

5. SQL Server資料庫用sql語句實現分頁查詢 (從M條數據開始,查找N條記錄。sqlserver資料庫。請舉例說明。)

1:新建一個資料庫
create database 資料庫名
2:新建一個表
create table 表名
(
欄位名 類型 是否為空
)
3:刪除一個表
drop table 表名
4:增加一個記錄
insert 表名 [(欄位)] values ( 內容 )
5:刪除一個記錄
delete [from] 表名 where 條件
6、修改一個記錄
update 表名 set 欄位名=更新內容 where 條件
7、在原表中增加一個欄位
alter table 表名 add column 欄位名 類型
8:在原表中刪除一個欄位
alter table 表名 drop column 欄位名
9、查詢一個表記錄
select * from 表名
10、帶條件查詢一個表記錄
select * from 表名 where =條件

6. SQL Server 分頁 查詢語句

四種方式實現SQLServer 分頁查詢
SQLServer 的數據分頁:
假設現在有這樣的一張表:
CREATE TABLE test
(
id int primary key not null identity,
names varchar(20)
)
然後向裡面插入大約1000條數據,進行分頁測試
假設頁數是10,現在要拿出第5頁的內容,查詢語句如下:
--10代表分頁的大小
select top 10 *
from test
where id not in
(
--40是這么計算出來的:10*(5-1)
select top 40 id from test order by id
)
order by id
原理:需要拿出資料庫的第5頁,就是40-50條記錄。首先拿出資料庫中的前40條記錄的id值,然後再拿出剩餘部分的前10條元素

第二種方法:
還是以上面的結果為例,採用另外的一種方法
--數據的意思和上面提及的一樣
select top 10 *
from test
where id >
(
select isnull(max(id),0)
from
(
select top 40 id from test order by id
) A
)
order by id
原理:先查詢前40條記錄,然後獲得其最id值,如果id值為null的,那麼就返回0
然後查詢id值大於前40條記錄的最大id值的記錄。
這個查詢有一個條件,就是id必須是int類型的。

第三種方法:
select top 10 *
from
(
select row_number() over(order by id) as rownumber,* from test
) A
where rownumber > 40
原理:先把表中的所有數據都按照一個rowNumber進行排序,然後查詢rownuber大於40的前十條記錄
這種方法和oracle中的一種分頁方式類似,不過只支持2005版本以上的
第四種:
存儲過程查詢
創建存儲過程
alter procere pageDemo
@pageSize int,
@page int
AS
declare @temp int
set @temp=@pageSize*(@page - 1)
begin
select top (select @pageSize) * from test where id not in (select top (select @temp) id from test) order by id
end
執行存儲過程
exec 10,5

7. MySQL分頁的sql語言怎麼寫

1、首先我們建立一個表表的數據,這個表裡有25條數據,id從1到25。(下圖是部分截圖)

8. 求教db2中的sql語句,關於分頁查詢,查詢從第

一、查詢指定模式下的所有表
db2 LIST TABLES FOR SCHEMA 模式名

二、查詢當前模式下所有表及信息
db2 select tabname from syscat.tables where tabschema = CURRENT SCHEMA

三、查詢當前模式下所有的表
db2 LIST TABLES FOR ALL

四、查詢指定表名的表
db2 select * from syscat.tables where TABNAME = '表名'(表名必須大寫,不加模式,原因是TABNAME是syscat.tables中的一個欄位,TABSCHEMA模式是另一個欄位,兩者唯一確定一張表)

希望這些可以給你幫助

9. 如何用sql語句 實現分頁查詢

分頁:一般會把當前頁通過get方式傳遞,PHP通過$_GET['page']接收。

查詢:可以從當前乘以每頁顯示數通過limit來實現分頁效果。

//每頁顯示條數
$pageSize=10;
//當前頁
$_GET['page']?$page=1:$page=$_GET['page'];
//開始查詢位置
$seat=$page*$pageSize;
//sql語句
$sql="select*fromtablelimit$seat,$pageSize";
//輸出數據到view即可