『壹』 sqlserver ce 中 分頁查詢語句如何寫好像ce中不支持top,有沒有其他替代的sql呢
SELECT * FROM (
SELECT row_number() over(order by '排序欄位') AS rowNumbers,t.* FROM (
你原來的Sql
) t ) t WHERE t.rowNumbers between 1 AND 10
『貳』 SqlServer 多表查詢分頁
if (object_id('pro', 'P') is not null)
drop proc pro
go
create procere pro
@pageIndex int,
@pageSize int
as
declare @startRow int, @endRow int
set @startRow = (@pageIndex - 1) * @pageSize +1
set @endRow = @startRow + @pageSize -1
select * from (
select a.*,b.img_typename from jingwailife a,jingwaiimgtype b ,row_number() over (order by sno asc) as number
where a.img_type=b.img_typecode
and a.img_type='1' ) t
where t.number between @startRow and @endRow
go
exec pro @pageIndex , @pageSize
go
『叄』 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)
『肆』 sqlserver分頁查詢
select top 頁大小 *
from table1
where id>
(select max (id) from
(select top ((頁碼-1)*頁大小) id from table1 order by id) as T
)
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
『陸』 sqlserver分頁語句怎麼寫要不用 top的
還有一種使用方法是用ROW_NUMBER()over(order by) 的函數作為內部查詢查出所有的行號,外面通過ROW_NUMBER定義范圍查詢。
例如有一張Person表,有10000條數據,現在分頁查詢前1000條。
Top語法:
SELECT TOP 1000 * FROM PERSON;
ROW_NUMBER()OVER(ORDER BY)語法:
order by的作用就是作為排序,後面我們假設使用一個Person表中的id欄位
那麼sql就是:
SELECT * FROM
(
SELECT *, ROW_NUMBER()OVER(ORDER BY id) AS 'Row' FROM PERSON
)AS T
WHERE t.Row<1001
『柒』 資料庫SQLServer2005分頁查詢數據:
select top 0 這個是干什麼的,有什麼意義嗎?
是想按照哪個id排序啊?
select top 5 * from blog ,category where blog.catId=category.id and blog.id not in (select top 0 blog.id from blog order by id desc ) order by id desc
『捌』 在jsp中sqlserver的分頁查詢語句是
很簡單 mysql是用limit分頁的
他的語句是select * from TABLE limit x,y
x和y就是每頁顯示多少條到多少條記錄
分頁的時候只需要把你每頁的記錄數算出來 然後給到變數就可以了
『玖』 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 =條件
『拾』 sqlserver實現分頁的幾種方式
老生常談:
1 row_number
2 top not in
請試一試,如有疑問,及時溝通!