下面的是一个翻页的存储...
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GOCREATE PROCEDURE [dbo].[T_EnterpriseWeb_GetList]
(
@StatusValue int, @WhereClause varchar (2000) , @OrderByClause varchar (2000) , @PageIndex int , @PageSize int
)
AS BEGIN
DECLARE @PageLowerBound int
DECLARE @PageUpperBound int
-- Set the page bounds
SET @PageLowerBound = @PageSize * @PageIndex
SET @PageUpperBound = @PageLowerBound + @PageSize IF (@OrderByClause is null or LEN(@OrderByClause) < 1)
BEGIN
-- default order by to first column
SET @OrderByClause = 'CreateDate Desc'
END -- SQL Server 2005 Paging
declare @FROM as nvarchar(1000)
SET @FROM = ' FROM T_TrainingOrg B INNER JOIN (SELECT DISTINCT B.U_UserUID,C.CreateDate FROM T_TrainingCourse AS A INNER JOIN
T_TrainingOrg AS B ON A.U_UserUID = B.U_UserUID INNER JOIN
aspnet_Membership AS C ON B.U_UserUID = C.UserId'
declare @WHERE as nvarchar(1000)
SET @WHERE = ' WHERE (B.I_Status = '+ Convert(varchar,@StatusValue)+')'
IF LEN(@WhereClause) > 0
BEGIN
SET @WHERE = @WHERE + ' AND ' + @WhereClause
END
SET @WHERE = @WHERE + ') D ON B.U_UserUID = D.U_UserUID' declare @SQL as nvarchar(4000)
SET @SQL = 'WITH PageIndex AS ('
SET @SQL = @SQL + ' SELECT '
IF @PageSize > 0
BEGIN
SET @SQL = @SQL + ' TOP ' + convert(nvarchar, @PageUpperBound)
END
SET @SQL = @SQL + ' ROW_NUMBER() OVER (ORDER BY ' + @OrderByClause + ') as RowIndex'
SET @SQL = @SQL + ', B.*, D.CreateDate'
SET @SQL = @SQL + @FROM + @WHERE
SET @SQL = @SQL + ' ) SELECT *'
SET @SQL = @SQL + ' FROM PageIndex'
SET @SQL = @SQL + ' WHERE RowIndex > ' + convert(nvarchar, @PageLowerBound)
IF @PageSize > 0
BEGIN
SET @SQL = @SQL + ' AND RowIndex <= ' + convert(nvarchar, @PageUpperBound)
END
SET @SQL = @SQL + ' ORDER BY ' + @OrderByClause
exec sp_executesql @SQL
-- get row count
SET @SQL = 'SELECT COUNT(*) as TotalRowCount'
SET @SQL = @SQL + @FROM + @WHERE
exec sp_executesql @SQL
END我现在要拿写好的一个SQL语句根据上面的那个翻页存储.改成我需要的翻页存储...这个是我的SQL语句
select A.U_UserUID ,'127' as Status from (select distinct U_UserUID from T_EnterpriseWeb where I_Status=127) A
union
(select B.U_UserUID,'126' as Status from
(select distinct U_UserUID from T_EnterpriseWeb where I_Status=126 and U_UserUID
not in(select distinct U_UserUID from T_EnterpriseWeb where I_Status=127)) B)求高手帮忙...求高手帮忙...求高手帮忙...求高手帮忙...
解决方案 »
- Datalist 中lable控件问题 》》》?急 求助
- DataRow[]怎么写成DataTable? 急急急急
- 如何解决发生XenoCode.User.Attributes.AssemblyAttributes.ProcessedByXenoCode错误?
- 调试三楼楼长的OA时出错!!
- 如何在一个页面中刷新另一页面呢?
- 下面发送邮件的代码,为什么出错?在线等ing……
- 收集到的一写常用正则表达式,给大家参考
- 如何把数据库中的数据以Excel文件的格式显示在浏览器中!急!!!!!!!!!!
- 问一条sql 语句,高手们进来帮个忙
- javascript
- 把文件以二进制方式上传存到数据库中,怎么实现
- 为什么入库数据顺序会变
sp_decrypt up_PublicTurnPageWebSite
-
DROP proc up_PublicTurnPageWebSite
--通用的海量分页存储过程
create proc up_PublicTurnPageWebSite(
@TBName nvarchar(100)='', --表名,如 pinyin
@PageSize int=10, --每页的记录数,默认为 10
@CurPage int=1, --表示当前页 1
@KeyField nvarchar(100)='ID', --关键字段名,默认为 ID,该字段要求是表中的索引 或 无重复和不为空的字段
@KeyAscDesc nvarchar(4)='ASC', --关键字的升、降序,默认为升序 ASC , 降序为 DESC
@Fields nvarchar(500)='*', --所选择的列名,默认为全选
@Condition nvarchar(3000)='', --where 条件,默认为空
@Order nvarchar(200)='' --排序条件,默认为空
) with encryption as
if @TBName = ''
begin
raiserror('请指定表名!',11,1)
return
end
if @PageSize <=0 or @CurPage <0
begin
raiserror('当前页数和每页的记录数都必须大于零!',11,1)
return
end
if @KeyAscDesc = 'DESC'
set @KeyAscDesc = '<'
else
set @KeyAscDesc = '>'
if @Condition <> ''
set @Condition = ' where ' + @Condition
declare @SQL nvarchar(3000)
set @SQL = ''
if @CurPage = 1
set @SQL = @SQL + 'SELECT Top ' + cast(@PageSize as nvarchar(20)) + ' ' + @Fields + ' FROM ' + @TBName + @Condition + ' ' + @Order
else
begin
declare @iTopNum int
set @iTopNum = @PageSize * (@CurPage - 1)
set @SQL = @SQL + 'declare @sLastValue nvarchar(100)' + char(13)
set @SQL = @SQL + 'SELECT Top ' + cast(@iTopNum as nvarchar(20)) + ' @sLastValue=' + @KeyField + ' FROM ' + @TBName + @Condition + ' ' + @Order + char(13)
declare @Condition2 nvarchar(3000)
if @Condition = ''
set @Condition2 = ' where ' + @KeyField + @KeyAscDesc + '@sLastValue '
else
set @Condition2 = ' and ' + @KeyField + @KeyAscDesc + '@sLastValue '
set @SQL = @SQL + 'SELECT Top ' + cast(@PageSize as nvarchar(20)) + ' ' + @Fields + ' FROM ' + @TBName + @Condition + @Condition2 + @Order
end
EXECUTE sp_executesql @SQL