1樓:匿名使用者
select *
from test
where rownum>=10
and rownum<=30
機子上沒裝oracle啊,不過好像記得這樣是可以的,你試試還有啊,你想選什麼樣的,最好加上order by
2樓:
用分頁的方法
這是我分頁的儲存過程
if exists(select * from sysobjects where name= 'pg_view')
drop proc pg_view
gocreate proc pg_view
@pagesize int=10, --每頁顯示
@pageindex int=1, --頁面索引
@pagekey varchar(100), --查詢欄位名
@pagesort varchar(50), --排序欄位名
@pagetable nvarchar(50), --表名
@pagetotal int output --總頁數
asdeclare @total int,@sql nvarchar(200)
set @sql=n'select @total2= count(*) from ' + @pagetable
exec sp_executesql @sql, n' @total2 bigint output', @total output ----@total2 bigint output 設定引數
--求總頁面
if(@total<@pagesize) --總行數小於每頁顯示的行數則總頁數等於 1
set @pagetotal=1
else
begin
if((@total%@pagesize)=0) --總行數能否被每頁顯示的行數整除
begin
set @pagetotal=@total/@pagesize
endelse
begin
set @pagetotal=@total/@pagesize+1
endend
if(@pagetotal<@pageindex) --當總頁數小於查詢的頁數時eg:如果一共5頁使用者輸入6頁
set @pageindex=@pagetotal
declare @exec nvarchar(1000),@pageremove int
set @pageremove=(@pageindex-1)*@pagesize --查詢當前頁面之前的資料
set @exec=n'select top ' + convert(nvarchar(10),@pagesize) + @pagekey + n' from '+ @pagetable+n' where '+ @pagesort+
n' not in (select top '+ convert(nvarchar(10),@pageremove)+ @pagesort +n' from '+ @pagetable+
n' order by '+ @pagesort+ n' desc) order by '+@pagesort+n' desc'
exec (@exec)
godeclare @a int
exec pg_view 21,5,'*','number','test',@a output
print @a
求sql中 從第幾行取幾行的語句!
3樓:
--從table 表中取出第 m 條到第 n 條的記錄:(not in 版本)
select top n-m+1 *
from table
where (id not in (select top m-1 id from table ))
從table表中取出第m到n條記錄 (exists版本)
select top n-m+1 * from table as a where not exists
(select * from (select top m-1 * from table order by id) b where b.id=a.id )
order by id
--m為上標,n為下標,例如取出第8到12條記錄,m=8,n=12,table為表名
select top n-m+1 * from table
where id>(select max(id) from
(select top m-1 id from table order by id asc) temp)
order by id asc
4樓:匿名使用者
select top(5) *
from (select *, row_number() over (order by id) as rownum
from reply) as tab where tab.rownum >=15搞定!
5樓:
在什麼狀態?如果是查詢分析器,選中幾行就執行幾行,如果是在儲存過程中除了通過/**/遮蔽不需要的語句,別無它法.
mysql中,我想獲取第n行的所有資料,該sql語句怎麼寫呀
6樓:匿名使用者
select * from ........... limit n行, 1
查詢第m到n行的sql語句 資料庫是access m,n是變數。
7樓:匿名使用者
如果有一張表userinfo(user_id,user_name,desc),則該錶第m到n行的sql語句為。
8樓:匿名使用者
先計算出m-》n共多少行,x=m-n+1,同時假設你的行號欄位是id
select * from (select top x * from (select top n * from 表 order by id desc) order by id) order by id desc
9樓:匿名使用者
access資料庫不熟悉 不過如果可以使用rownum的話 就是 rownum>=m and rownum<=n
不能使用rownum的話 應該就是用top吧 先取一次top n就是取從1到n 然後在寫乙個 not in
top m 這樣就可以取到從m到n了 具體是用m還是m+1 或者m-1你自己看需求測試下吧
如何在sql server中查詢從n條記錄開始的m條記錄?查詢語句該怎麼寫?
10樓:
首先在id上建立聚集索引是必須的。
如果id是連續的,樓上的的用id來限定語句範圍是很快的。
如果id不是連續的,樓主的語句使用了not in,一般這樣效率是很低的。
可以把語句改成
select top m *
from table
where id> (select max(id) from (select top n id from table order by id) a)
order by id
這樣可以一定程度上提高一些效能。
比如我的表中有300多萬條記錄,使用樓主的語句執行時間需要9秒多,而用我的語句3秒多。
11樓:網路夜行者
這個查詢語句在sql裡是不可能實現的,因為在sql 裡的資料並沒有位置資訊,也就是說沒有指定哪條資料是第一條,哪個是第二條,這樣也就沒有第n條,更沒有相對n的m條,這是因為sql為了提高查詢的速度來設計的,因為如果它從第一條到第二條直到第n條,它要用的時間可能會很長,所以sql就不用這種查詢方法。
當然,如果你的每一條資料都有相應的id的話,你可以通過這個id來實現這一方法,就像上面的人說的那樣
select * from table where id=n and id<(n+m)
12樓:
select * from table where id between n and m
13樓:
select * from table where limit n and m
或select * from table where id between n and m
Excel,在N行N列中查詢某值,返回行值列值
機靚歸方雅 match 你要查詢的值,目標區域,匹配精度 如果要返回行值 例如在b3 b8這個區域中查詢 3,輸入 match 3,b3 b8,false 假設3在b4格,則返回2 這裡的返回值是相對行值 如果要返回列值 例如在b3 b8這個區域中查詢 3,輸入 match 3,b3 f3,fals...
新生求助 SQL怎樣刪除之前查詢過的行,就是查詢一條記錄刪除一條記錄
查詢的時候,你將num儲存下來嘛,刪除的時候使用儲存的這個值來刪 建立測試表 create table s test id int identity 1,1 name varchar 20 隨機生成20條資料 insert into s test name select right 000000 c...
N96和N97行貨價效比是否夠高?20分的提問
諾基亞n96在京東 是2799,n97因為版本的不同,所以 格不相同,京東 n97mini 是2895,n97i 是3699元,更多具體 請去京東 查詢。建議你買n96,因為它採用的與n85相同的s60第三版系統,功能一樣強大 而n97採用的s60第五版系統軟體和遊戲太少,沒什麼可玩性。n97價效比...