當前位置:首頁 » 編程語言 » sql2008分頁查詢

sql2008分頁查詢

發布時間: 2022-09-01 19:23:23

sqlSERVER 兩表關聯查詢分頁顯示 SQL語句

如果你用的是SQL2008以後的資料庫版本,可以這樣
SELECT
ROW_NUMBER()
OVER
(ORDER
BY
B.HID
DESC)
BH,
B.*
FROM
(SELECT
h.[醫院名稱],k.[科室名稱],k.[科室編號],k.id,k.kid
from
[醫院表]
as
h
right
join
[科室表]
as
k
on
k.hid
=
h.hid
)
B
WHERE
BH
BETWEEN
($page_size
*
$page_num)
AND
($page_size
*
$page_num
+$page_size)

㈡ sql server 2008 怎麼分頁

SELECT t.欄位名 FROM (
SELECT 欄位(可以是多表關聯的欄位) ,
row_number() over(order by 某個排序欄位 desc) r
FROM 表名 where 過濾條件 ) t
where t.r <= (每頁顯示條數*要查詢的頁) and t.r > (每頁顯示條數*(要查詢的頁-1))
有疑問可以再問
望採納

㈢ sql分頁查詢語句 不加desc可以按升序排序並分頁 我需要按照時間倒序 加上desc 怎麼數據都不變 我是sql2008

時間欄位名是什麼?看你的SQL語句里好像沒有定義時間的排序。
假設時間欄位是addtime,那可以這么寫:
SELECT TOP 5 *
FROM WorkDaily where (guid not in
( SELECT TOP 15 guid FROM WorkDaily order by guid asc))
AND isdelete =0 AND CreateById=85 order by guid desc,addtime desc

㈣ 請問下sqlserver2008分頁語句怎麼寫

1、這種SQL分頁語句,是用正反向排序的原理寫:
先按你需要的排序,取到你要的頁數的數據;再從其中按倒序取,每頁要顯示多少行就取多少個。這樣取出的就是需要的數據;再按需要的排序重新排下序就是所要取的第n頁的數據了;
然後要取的頁數用參數傳遞,就可以按參數取任意頁的數據集。

2、這種做法的缺陷是:
用來排序的欄位必須是關鍵數據集,即能唯一確定數據行的欄位集;排序欄位相同的數據行有多個的話,則這幾行之間的排序會有問題;

3、排序欄位是關鍵數據集的話,不用說了,直接用現有欄位實現就是;參照加行號的語句,去掉rownum,按你自己的欄位寫order子句 替換rownum的排序就是;而且最內層還可以去掉一層子查詢;

4、排序欄位不是關鍵數據集的話,需要加個行號欄位,作為排序欄位:從1開始,遞增1個的順序(1、2、……);2008的話,支持row_number(),就好辦多了,否則就只好自己控制生成一個序列欄位,再合並到數據集上了。

5、加個行號欄位的語句具體如下,其中具體表、欄位,按你自己的實際情況代換下:
declare @iPage int --所取的頁的序數 (第幾頁)
declare @iPageNum int --所取的數據行數(除最後一頁外,每頁所取的行數應該都是一樣的)
declare @iRecordNumber int --取@iPage頁時,結尾記錄所在行數
declare @iRecordCount int --總記錄行數

--變數初始化
set @iPage=2 --可用參數傳遞
set @iPageNum=10 --默認每頁取10行
set @iRecordNumber=@iPage*@iPageNum
select @iRecordCount=count(任意欄位,最好不要用*) from 你取數據的表

--取最後一頁時,重算結尾所在行數(@iRecordNumber)、所取記錄數(@iPageNum)
if @iRecordNumber>@iRecordCount
begin
set @iRecordNumber=@iRecordCount
if (@iRecordNumber%@iPageNum)>0
set @iPageNum=@iRecordNumber%@iPageNum
end

declare @strSQL varchar(max)
set @strSQL='select * from ('
set @strSQL=@strSQL + 'select top '+ convert(varchar(5),@iPageNum) +' * from('
set @strSQL=@strSQL + 'select top '+ convert(varchar(7),@iRecordNumber) +' * from'
set @strSQL=@strSQL + '('
set @strSQL=@strSQL + 'select row_number()over(order by 你需要的排序欄位及正反序)as RowNum,*from 你取數據的表'
set @strSQL=@strSQL + ') a order by rownum'
set @strSQL=@strSQL + ') b order by rownum desc'
set @strSQL=@strSQL + ') c order by rownum'

exec(@strSQL)

㈤ 如何用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 server2008怎樣分頁

你可以用存儲過程分頁,如下存儲過程支持分頁和排序:

CREATE PROCEDURE GetSortedMovies
(
@SortExpression NVarChar(100),
@StartRowIndex INT,
@MaximumRows INT
)
AS

-- 創建一個臨時表存儲查詢結果
CREATE TABLE #PageIndex
(
IndexId INT IDENTITY (1,1) NOT NULL,
RecordId INT
)
-- 插入臨時表
INSERT INTO #PageIndex (RecordId)
SELECT Id FROM Movies
ORDER BY
CASE WHEN @SortExpression='Id' THEN Id END ASC,
CASE WHEN @SortExpression='Id DESC' THEN Id END DESC,
CASE WHEN @SortExpression='Title' THEN Title END ASC,
CASE WHEN @SortExpression='Title DESC' THEN Title END DESC,
CASE WHEN @SortExpression='Description' THEN Description END ASC,
CASE WHEN @SortExpression='Description DESC' THen Description END DESC

-- 得到頁數
SELECT Id,Title,Description FROM Movies
INNER JOIN #PageIndex WITH (nolock)
ON Movies.Id = #PageIndex.RecordId
WHERE #PageIndex.IndexId > @StartRowIndex
AND #PageIndex.IndexId < (@StartRowIndex + @MaximunRows + 1)
ORDER BY #PageIndex.IndexId

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

適用於 SQL Server 2000/2005

SELECT TOP 頁大小 *

FROM table1

WHERE id NOT IN

SELECT TOP 頁大小*(頁數-1) id FROM table1 ORDER BY id

㈧ sql server 2008 用row_number() over()怎麼分頁

主要採用row_number對其進行編號,然後根據頁數取出相應的編號,具體的原理,你可以看一下這里

row_number分頁原理

如有疑問,及時溝通!

㈨ 關於資料庫分頁處理的SQL語句(本人用的資料庫是SQL2008)

把 StudentId+SpecialityId作為一個欄位來處理就可以了,
比如你的語句可以寫成:
select top 14 * from Student,Speciality where Student.SpecialityId=Speciality.SpecialityId
and StudentId+Student.SpecialityId not in (select top 7 StudentId+Student.SpecialityId
from Student,Speciality where
Student.SpecialityId=Speciality.SpecialityId order by StudentId desc)order by StudentId+Student.SpecialityId

像這種情況,最好是創建一個視圖,其中把StudentId+SpecialityId作為視圖中的一列,這樣就方便處理了

㈩ sqlserver2008從一個表中模糊查詢並分頁

select * from (
select * from(
select b.*,rownum rn from bbs b where title like '%呵呵%'
and rownum<=10)
where rn<=分頁的上限)
where rn>分頁的下限

熱點內容
中國銀行查詢密碼是什麼 發布:2025-01-16 02:33:20 瀏覽:791
堅果pro錄音文件夾 發布:2025-01-16 02:31:46 瀏覽:938
支付寶的登錄密碼忘記了如何改 發布:2025-01-16 02:30:30 瀏覽:221
解壓作業泥 發布:2025-01-16 02:28:02 瀏覽:806
我的世界rpg伺服器空島 發布:2025-01-16 02:26:49 瀏覽:90
ps腳本函數 發布:2025-01-16 02:15:28 瀏覽:480
android顯示行數據 發布:2025-01-16 02:07:40 瀏覽:963
壓縮皇冠 發布:2025-01-16 01:51:27 瀏覽:274
全鍵盤編程鍵盤 發布:2025-01-16 01:38:59 瀏覽:422
尾貨棉服直播間腳本 發布:2025-01-16 01:21:45 瀏覽:228