1.“淇勭綏鏂瓨鍌ㄨ繃紼?#8221;鐨勬敼鑹増
CREATE procedure pagination1
(@pagesize int, --欏甸潰澶у皬錛屽姣忛〉瀛樺偍20鏉¤褰?br />
@pageindex int --褰撳墠欏電爜)
as set nocount on
begin
declare @indextable table(id int identity(1,1),nid int) --瀹氫箟琛ㄥ彉閲?br /> declare @PageLowerBound int --瀹氫箟姝ら〉鐨勫簳鐮?br /> declare @PageUpperBound int --瀹氫箟姝ら〉鐨勯《鐮?/p>
set @PageLowerBound=(@pageindex-1)*@pagesize
set @PageUpperBound=@PageLowerBound+@pagesize
set rowcount @PageUpperBound
insert into @indextable(nid) select gid from TGongwen where fariqi >dateadd(day,-365,getdate()) order by fariqi desc
select O.gid,O.mid,O.title,O.fadanwei,O.fariqi from TGongwen O,@indextable t where O.gid=t.nid
and t.id>@PageLowerBound and t.id<=@PageUpperBound order by t.id
end
set nocount off
鏂囩珷涓殑鐐硅瘎錛?
浠ヤ笂瀛樺偍榪囩▼榪愮敤浜哠QL SERVER鐨勬渶鏂版妧鏈曗曡〃鍙橀噺銆傚簲璇ヨ榪欎釜瀛樺偍榪囩▼涔熸槸涓涓潪甯鎬紭縐鐨勫垎欏靛瓨鍌ㄨ繃紼嬨傚綋鐒訛紝鍦ㄨ繖涓繃紼嬩腑錛屾偍涔熷彲浠ユ妸鍏朵腑鐨勮〃鍙橀噺鍐欐垚涓存椂琛細CREATE TABLE #Temp銆備絾寰堟槑鏄撅紝鍦⊿QL SERVER涓紝鐢ㄤ復鏃惰〃鏄病鏈夌敤琛ㄥ彉閲忓揩鐨勩傛墍浠ョ瑪鑰呭垰寮濮嬩嬌鐢ㄨ繖涓瓨鍌ㄨ繃紼嬫椂錛屾劅瑙夐潪甯哥殑涓嶉敊錛岄熷害涔熸瘮鍘熸潵鐨凙DO鐨勫ソ銆備絾鍚庢潵錛屾垜鍙堝彂鐜頒簡姣旀鏂規硶鏇村ソ鐨勬柟娉曘?
浠庢劅瑙変笂璁詫紝鏁堢巼涓嶆槸澶珮銆?/p>
2. not in 鐨勬柟娉曪細
浠巔ublish 琛ㄤ腑鍙栧嚭絎?n 鏉″埌絎?m 鏉$殑璁板綍錛?/p>
SELECT TOP m-n+1 * FROM publish WHERE (id NOT IN (SELECT TOP n-1 id FROM publish))
id 涓簆ublish 琛ㄧ殑鍏抽敭瀛?/p>
鏂囩珷涓殑鐐硅瘎錛?
鎴戝綋鏃剁湅鍒拌繖綃囨枃绔犵殑鏃跺欙紝鐪熺殑鏄簿紲炰負涔嬩竴鎸紝瑙夊緱鎬濊礬闈炲父寰楀ソ銆傜瓑鍒板悗鏉ワ紝鎴戝湪浣滃姙鍏嚜鍔ㄥ寲緋葷粺錛圓SP.NET+ C#錛婼QL SERVER錛夌殑鏃跺欙紝蹇界劧鎯寵搗浜嗚繖綃囨枃绔狅紝鎴戞兂濡傛灉鎶婅繖涓鍙ユ敼閫犱竴涓嬶紝榪欏氨鍙兘鏄竴涓潪甯稿ソ鐨勫垎欏靛瓨鍌ㄨ繃紼嬩簬鏄垜灝辨弧緗戜笂鎵捐繖綃囨枃绔狅紝娌℃兂鍒幫紝鏂囩珷榪樻病鎵懼埌錛屽嵈鎵懼埌浜嗕竴綃囨牴鎹璇彞鍐欑殑涓涓垎欏靛瓨鍌ㄨ繃紼嬶紝榪欎釜瀛樺偍榪囩▼涔熸槸鐩墠杈冧負嫻佽鐨勪竴縐嶅垎欏靛瓨鍌ㄨ繃紼嬨?/p>
浣跨敤浜?not in 鑰?not in 鏄棤娉曚嬌鐢ㄧ儲寮曠殑錛屾墍浠ヤ粠鏁堢巼涓婅榪樻槸宸簡涓鐐廣?
3. max 鐨勬柟娉曪細
select top 欏靛ぇ灝?* from table1 where id>
(select max (id) from
(select top ((欏電爜-1)*欏靛ぇ灝? id from table1 order by id) as T)
order by id
鏂囩珷涓殑鐐硅瘎錛?
鎴戜滑鐭ラ亾錛屽嚑涔庝換浣曞瓧孌碉紝鎴戜滑閮藉彲浠ラ氳繃max(瀛楁)鎴杕in(瀛楁)鏉ユ彁鍙栨煇涓瓧孌典腑鐨勬渶澶ф垨鏈灝忓鹼紝鎵浠ュ鏋滆繖涓瓧孌典笉閲嶅錛岄偅涔堝氨鍙互鍒╃敤榪欎簺涓嶉噸澶嶇殑瀛楁鐨刴ax鎴杕in浣滀負鍒嗘按宀紝浣垮叾鎴愪負鍒嗛〉綆楁硶涓垎寮姣忛〉鐨勫弬鐓х墿銆傚湪榪欓噷錛屾垜浠彲浠ョ敤鎿嶄綔絎?#8220;>”鎴?#8220;<”鍙鋒潵瀹屾垚榪欎釜浣垮懡錛屼嬌鏌ヨ璇彞絎﹀悎SARG褰㈠紡銆傚錛?br /> Select top 10 * from table1 where id>200
榪欎釜灝遍珮楂樻晥浜嗕竴鐐廣備絾鏄笉娓呮 max鐨勫伐浣滃師鐞嗭紝涓嶇煡閬撳畠鐨勬ц兘濡備綍銆?
蹇冨緱錛?/p>
1銆佽拷姹傞珮鏁堢殑緲婚〉綆楁硶 鈥斺?瀹氫綅娉曘?/p>
declare @pageSize int --榪斿洖涓欏電殑璁板綍鏁?br /> declare @CurPage int --欏靛彿錛堢鍑犻〉錛?錛氱涓欏碉紱-1鏈鍚庝竴欏點?/p>
declare @Count int
declare @id int
set @pageSize=10
set @CurPage =1
--瀹氫綅
if @CurPage = -1
begin
--鏈鍚庝竴欏?br />
set rowcount @pageSize
select @id=newsID from newsTemp order by newsID
end
if @CurPage > 0
begin
set @Count = @pageSize * (@CurPage -1) + 1
set rowcount @Count
select @id=newsID from newsTemp order by newsID desc
end
--榪斿洖璁板綍
set rowcount @pageSize
select * from newsTemp where newsID <=@id order by newsID desc
set rowcount 0
鎬濊礬錛氬氨鏄笂闈㈢殑綆楁硶鐨勫歡緇紝灝辨槸璇村憿閬垮厤浣跨敤 not in 鍜?max 鐨勬柟娉曘備篃灝辨槸榪欎釜鎬濊礬錛歋elect top 10 * from table1 where id>200錛屽畾浣?鈥斺?灝辨槸璇磋鎵懼埌“涓寸晫鐐?#8221;錛屽垎欏電殑涓寸晫鐐廣傛壘鍒頒簡涔嬪悗鍓╀笅鐨勪簨鎯呭氨濂藉姙浜嗐?/p>
緙虹偣錛氬崟瀛楁鎺掑簭銆佹帓搴忓瓧孌電殑鍊間笉鑳介噸澶嶏紙涓嶆槸緇濆涓嶈兘閲嶅錛屽彲浠ユ湁灝戦噺鐨勯噸澶嶏級銆?/p>
2銆侀氱敤娉?鈥斺?棰犻鍊掑掓硶
鏈夌殑鏃跺?#8220;瀹氫綅娉?#8221;鐨勭己鐐規槸涓嶅彲浠ユ帴鍙楃殑錛屼絾鏄病鏈夊叧緋伙紝鍙互鐢ㄨ繖涓殑銆?/p>
select * from table where id in
(
select top 10 ID from
(
select top 20 ID,addedDate from table
order by addedDate desc
) as aa order by addedDate
)
order by addedDate desc
ID 鏄富閿紝addedDate 鏄帓搴忓瓧孌點?/p>
緙虹偣錛氬繀欏繪湁涓婚敭銆?/p>