❶ sqlSERVER如何實現分頁查詢
寫存儲過程 ..  
SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS ON 
GO
ALTER  PROCEDURE usp_Province_pagination
   
    @PageSize INT, --每頁的顯示的行數
    @AbsolutePage INT, -- 當前頁的頁數
    @PageCount INT OUTPUT --總頁數
AS
    DECLARE @BeginRecord INT --記錄每此從哪一行開始讀取
    DECLARE @RecordCount INT --表中數據的總條數
    DECLARE @sql NVARCHAR(1000)
    SET @RecordCount = (SELECT count(*) FROM Province) 
    --表中沒有數據的情況
    IF @RecordCount = 0
        BEGIN
            SET @PageCount = 0
            RETURN(0)
        END
    -- 表中的總條數大於定義的每頁的行數的情況
    IF @RecordCount > @PageSize
        BEGIN
            -- 計算總能分多少頁
            SET @PageCount = (@RecordCount + @PageSize - 1)/@PageSize 
            --當前應該從哪一行開始讀取
            SET @BeginRecord = ((@AbsolutePage-1) * @PageSize)
            SET @sql = N'SELECT TOP ' + cast(@PageSize AS NVARCHAR(100)) +' ProvinceID, provinceCode, ProvinceName
                        FROM  Province
                        WHERE ProvinceID NOT IN 
                             (SELECT TOP '+ CAST(@BeginRecord AS NVARCHAR(100)) + ' ProvinceID
                              FROM Province)'
                        
            EXECUTE sp_executesql @sql
        END
    ELSE  -- -- 表中的總條數大於定義的每頁的行數情況
        BEGIN
           SET @PageCount = 1
           SET @SQL  = 'SELECT ProvinceID, provinceCode, ProvinceName FROM Province '
           EXECUTE sp_executesql @sql
        END
GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO
❷ 如何用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即可
❸ sql分頁查詢問題(資料庫高手請進)
order by 後面需要排序的列逗號隔開,如果需要倒序,則在對應的列名後面直接跟desc,然後再逗號跟下一個列名。但這樣能在讀出的數據中進行排序,如果要在頁面顯示控制項上顯示出排序效果,則要根據控制項特性寫代碼
❹ SQL分頁查詢,怎麼一次性顯示2頁的查詢結果
按照上面回答的,可以這樣修改下:
SELECT 產品, SUM(CASE 季度 WHEN '第一季度' THEN 銷售量 ELSE 0 END) AS 第一季度, SUM(CASE 季度 WHEN '第二季度' THEN 銷售量 ELSE 0 END) AS 第二季度, SUM(CASE 季度 WHEN '第三季度' THEN 銷售量 ELSE 0 END) AS 第三季度 FROM 
(select *,ROW_NUMBER over(order by 產品) as rn from Tables )
where rn between @PageSize*(@PageIndex-1)+1 and @PageSize*@PageIndex 
GROUP BY 產品 ORDER BY 產品,rn
 
@PageSize 每頁幾條數據
@PageIndex 頁碼
只需按照參數傳遞即可
❺ sql分頁語句查詢問題
從t1結果集中取數據的時候沒有排序,當然結果不會變
改成這樣
select * from(select top 3 * from(select top 3 * from student order by 編號 desc) t1 order by 編號 desc) t2 order by 編號 asc
❻ 如何用sql語句 實現分頁查詢
適用於 SQL Server 2000/2005
SELECT TOP 頁大小 *
FROM table1
WHERE id NOT IN
SELECT TOP 頁大小*(頁數-1) id FROM table1 ORDER BY id
❼ 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
❽ sql 分頁多條件查詢
查詢可以用if else  去做。
例如:
sql="select * from ........."
``````````````
xh=request("型號")
······
if xh<>"" then sql=sql+" and 型號='"&xh&"'"
分頁可以用
<%TurnPage(rs,20,"型號="&xh&"&其他6個參數·······")%>
<%
Sub TurnPage(ByRef Rs_tmp,PageSize,canshu) 'Rs_tmp 記錄集 PageSize 每頁顯示的記錄條數; 
Dim TotalPage '總頁數 
Dim PageNo '當前顯示的是第幾頁 
Dim RecordCount '總記錄條數 
Rs_tmp.PageSize = PageSize 
RecordCount = Rs_tmp.RecordCount 
TotalPage = INT(RecordCount / PageSize * -1)*-1 
PageNo = Request.QueryString ("PageNo") 
'直接輸入頁數跳轉; 
If Request.Form("PageNo")<>"" Then PageNo = Request.Form("PageNo") 
'如果沒有選擇第幾頁,則默認顯示第一頁; 
If PageNo = "" then PageNo = 1 
If RecordCount <> 0 then 
Rs_tmp.AbsolutePage = PageNo 
End If 
'獲取當前文件名,使得每次翻頁都在當前頁面進行; 
Dim fileName,postion 
fileName = Request.ServerVariables("script_name") 
postion = InstrRev(fileName,"/")+1 
'取得當前的文件名稱,使翻頁的鏈接指向當前文件; 
fileName = Mid(fileName,postion) 
response.write "<table border=0 width='100%'><tr> "
If RecordCount = 0 or TotalPage = 1 Then 
Response.Write "" 
Else
response.write "<td align=left style='font-size:12px'> 總頁數:<font color=#ff3333>"&TotalPage&"</font>頁"
response.write "當前第<font color=#ff3333>"&PageNo&"</font>頁 </td> "
response.write "<td align='right'  style='font-size:12px'> "
end if
If RecordCount = 0 or TotalPage = 1 Then 
Response.Write "" 
Else
 response.write "<a href='"&fileName&"?PageNo=1&"&canshu&"'>首頁|</a>"
 If PageNo - 1 = 0 Then 
 Response.Write "前頁|" 
 Else
 response.write "<a href='"&fileName&"?PageNo="&PageNo-1&"&"&canshu&"'>前頁|</a>"
 End If 
 If PageNo+1 > TotalPage Then 
 Response.Write "後頁|" 
 Else
 response.write "<a href='"&fileName&"?PageNo="&PageNo+1&"&"&canshu&"'>後頁|</a>"
 End If
 response.write "<a href='"&fileName&"?PageNo="&TotalPage&"&"&canshu&"'>末頁</a>"
End If
response.write "</td></td></tr></table> "
end sub%>
❾ 關於分頁查詢的sql語句
這里的K不僅僅是個別名的作用,他把 (select *,row_number() over(order BY UserID) rowIndex from userinfo)做為一個表來查詢 ,如果不加則作為一個查詢結果集,SQL無法再查詢結果集上在進行查詢
