CREATE PROCEDURE [Dbo].searchbykey
@iskeyword varchar (100),
@iskf varchar (100),
@isdy varchar (100),
@iszj varchar (100),
@lr_begin varchar (100),
@lr_end varchar (100),
@iszt varchar (50),
@islx varchar (100),
@isly varchar (100),
@pagesize int,--page size
@pageindex INT--page number
As
Declare
@sqlsel varchar (1000),
@strsql varchar (1000)
Set @sqlsel =+ ' select * from Sickinfo where 1=1 '
if (@iskeyword!= ')
Set @sqlsel = IsNull (@sqlsel, ') + ' and askedinfo like ' + '% ' + @iskeyword + '% '
if (@iskf!= ')
Set @sqlsel =isnull (@sqlsel, ') + ' and kefu= ' + @iskf + ' "'
if (@isdy!= ')
set @sqlsel =isnull (@sqlsel, ') + ' and admit= ' + @isdy + '
if (@iszj!= ') )
Set @sqlsel =isnull (@sqlsel, ') + ' and zhuanjia= ' + @iszj + ' "'
if (@lr_begin!= ' and @lr_end!= ')
Set @sqlsel = @sqlsel + ' and addtime between ' "+convert (char), CONVERT (DateTime, @lr_begin)," "+convert" ( char (+), CONVERT (DateTime, @lr_end), 21) + ' "
if (@iszt!= ')
Set @sqlsel =isnull (@sqlsel, ') + ' and state = ' + @iszt + ' "'
if (@islx!= ')
Set @sqlsel =isnull (@sqlsel, ') + ' and istype= ' + @islx + ' "'
if (@isly!= ')
Set @sqlsel =isnull (@sqlsel, ') + ' and Infofrom = ' + @isly + ' "'
--Arranged in order
--set @strsql = ' select Top ' +str (@pagesize) + ' * FROM (' + @sqlsel + ') as T1 where id> (the Select ISNULL (max (ID), 0) from (sele CT top ' + str ((@pageindex-1) * @pagesize) + ' ID to (' + @sqlsel + ') as T2 order by ID as T)
--Flashback arrangement
if (@pageindex =1)
Begin
Set @strsql = ' Select Top ' +str (@pagesize) + ' * FROM (' + @sqlsel + ') as TT ORDER BY id DESC '
--set @strsql = ' select Top ' +str (@pagesize) + ' * out #temp2 ORDER BY id DESC '
End
Else
Begin
Set @strsql = ' Select Top ' +str (@pagesize) + ' * FROM (' + @sqlsel + ') as T1 where id< (select IsNull (min (id), 0) from (select Top ' +str ((@pageindex-1) * @pagesize) + ' ID from (' + @sqlsel + ') as T2 ORDER by id desc) as T "ORDER by id DESC '
End
EXEC (@strsql)
--exec @strsql
Go