²©¿ÍÊ×Ò³ ×¢²á ½¨ÒéÓë½»Á÷ ÅÅÐаñ ¼ÓÈëÓÑÇéÁ´½Ó
ÍÆ¼ö ͶËß ËÑË÷£º °ïÖú

¤¢¤ê¤¬¤È¤¦,Rei Ayanami.

   evaspring.cublog.cn
¹ØÓÚ×÷Õß  
ÐÕÃû£ºÈÄÉÜȪ
Ö°Òµ£º³ÌÐòÔ±
ÄêÁ䣺22
λÖãº
¸öÐÔ½éÉÜ£º¤¢¤ê¤¬¤È¤¦,Rei Ayanami.

ÎҵķÖÀà  




·ÖÒ³´æ´¢¹ý³Ì

/*
·ÖÒ³´æ´¢¹ý³Ì
*/

CREATE PROCEDURE sp_paging

 @pagesize int --ÿҳÏÔʾÌõÊý

, @pageindex int --µ±Ç°Ò³

, @tables varchar(3000) --ÏÔʾµÄ±í

, @fields varchar(5000) --ÏÔʾ×Ö¶Î

, @orderfield varchar(100) --ÅÅÐò×Ö¶Î

, @pkfield varchar(100) --Ö÷¼ü×Ö¶Î

, @strwhere varchar(500) --²éѯÌõ¼þ

, @strgroup varchar(500)='' --group by»ã×ÜÌõ¼þ


 AS

/*
set @pagesize=15
set @pageindex=2
set @tables='yp_supplyer where 1=1'
set @fields='*'
set @orderfield='supplyer_code'
set @pkfield='supplyer_code'
set @strwhere='py_code like ''%'''
*/


declare @strsql varchar(5000)
declare @strend varchar(2000)
declare @strorder varchar(100)
declare @strcount varchar(1000)

--È¡¼Ç¼ÌõÊý

declare @str varchar(300)
if charIndex('where',@tables)>0
begin
  if len(ltrim(@strwhere))>0
    set @str=' and '+@strwhere
  else
    set @str=''
end
else
begin
  if len(ltrim(@strwhere))>0
    set @str=' where '+@strwhere
  else
    set @str=''
end

set @strcount='(select count(1) from (select 1 val from '+@tables+@str+@strgroup+' ) tab_sel) row_count,'

--ÉèÖÃÊÇ·ñÅÅÐò

if len(ltrim(@orderfield))>0
  set @strorder=' order by '+@orderfield
else
  set @strorder=''

--ÉèÖòéѯÌõ¼þ

if len(ltrim(@strwhere))>0
  set @strwhere=@strwhere+' and '

--ÉèÖÃgroup by


if len(ltrim(@strgroup))=0 or charIndex('group by',@strgroup)>0
    set @strgroup=' '+@strgroup
else
   set @strgroup=' group by '+@strgroup

set @strend=@strwhere+@pkfield+' not in ( select top '+convert(varchar(10),(@pageindex-1)*@pagesize)+' '+@pkfield+' from '+@tables+@str+@strgroup+@strorder+')'

if charIndex('where',@tables)>0
  set @strend=' and '+@strend
else
  set @strend=' where '+@strend
--distinct

set @strsql='select top '+convert(varchar(4),@pagesize)+' '+@strcount+@fields+' from '+@tables+@strend+@strgroup+@strorder
exec(@strsql)
print @strsql
GO

 ·¢±íÓÚ£º 2008-05-19£¬ÐÞ¸ÄÓÚ£º 2008-05-19 12:43 ÒÑä¯ÀÀ135´Î£¬ÓÐÆÀÂÛ0Ìõ ÍÆ¼ö ͶËß

  ÍøÓÑÆÀÂÛ

  ·¢±íÆÀÂÛ



Copyright © 2001-2006 ChinaUnix.net All Rights Reserved

¸ÐлËùÓйØÐĺÍÖ§³Ö¹ýChinaUnixµÄÅóÓÑÃÇ
Ò³ÃæÉú³Éʱ¼ä£º0.01203

¾©ICPÖ¤041476ºÅ