if @OrderType != 0 begin set @strTmp = ‘<(select min‘ set @strOrder = ‘ order by ‘ + @strField + ‘ desc‘ end else begin set @strTmp = ‘>(select max‘ set @strOrder = ‘ order by ‘ + @strField + ‘ asc‘ end
set @strSQL = ‘select top ‘ + str(@PageSize) + ‘ * from [‘ + @tblName + ‘] where ‘ + @strField + @strTmp + ‘(tmpIndex) from (select top ‘ + str((@PageIndex-1)*@PageSize) + @strField + ‘ tmpIndex from [‘ + @tblName + ‘]‘ + @strOrder + ‘) as tblTmp)‘ + @strOrder
if @strWhere != ‘‘ set @strSQL = ‘select top ‘ + str(@PageSize) + ‘ * from [‘ + @tblName + ‘] where ‘ + @strField + @strTmp + ‘(tmpIndex) from (select top ‘ + str((@PageIndex-1)*@PageSize) + @strField + ‘ tmpIndex from [‘ + @tblName + ‘] where ‘ + @strWhere + ‘ ‘ + @strOrder + ‘) as tblTmp) and ‘ + @strWhere + ‘ ‘ + @strOrder
if @PageIndex = 1 begin set @strTmp = ‘‘ if @strWhere != ‘‘ set @strTmp = ‘ where (‘ + @strWhere + ‘)‘
set @strSQL = ‘select top ‘ + str(@PageSize) + ‘ * from [‘ + @tblName + ‘]‘ + @strTmp + ‘ ‘ + @strOrder end