树状接口Sql分页
来源:互联网 发布:win10优化开机的软件 编辑:程序博客网 时间:2024/06/08 11:11
public static DataSet GetListByPage(string where, int pageSize, int currentIndex)
{
StringBuilder sql = new StringBuilder();
sql.AppendFormat(@"declare @CurrentPageIndex INT,@PageSize INT;
set @CurrentPageIndex={0}
set @PageSize={1}
;with A as (
select * from (
select Row_Number() over(order by FN_UNIT_NAME) RowNo,* from SYS_CONSTRUCTION_UNIT where FN_ID_PARENT='00000000-0000-0000-0000-000000000000'",currentIndex, pageSize);
if (!string.IsNullOrEmpty(where.Trim()))
{
sql.Append(" and " + where);
}
sql.Append(@" ) a where RowNo>=cast(@CurrentPageIndex*@PageSize+1 AS NVARCHAR) and RowNo <=CAST ((@CurrentPageIndex+1)*@PageSize AS NVARCHAR)
UNION ALL
SELECT Row_Number() over(order by B.FN_UNIT_NAME) RowNo,B.* FROM SYS_CONSTRUCTION_UNIT B,A WHERE B.FN_ID_PARENT=A.FN_ID_UNIT
)
SELECT * FROM ( SELECT SC.*,S1.FN_NAME FN_CLIENT_TYPE_NAME,S2.FN_NAME FN_CLIENT_STATUS_NAME,
S3.FN_NAME FN_CLIENT_FROM_NAME,S4.FN_NAME FN_CLIENT_ISSHARE_NAME FROM
(SELECT * FROM A) SC
LEFT JOIN (SELECT FN_CODE,FN_NAME FROM SYS_DOMAIN WHERE FN_DOMAIN_NAME='FN_CLIENT_TYPE') S1
ON SC.FN_CLIENT_TYPE=S1.FN_CODE
LEFT JOIN (SELECT FN_CODE,FN_NAME FROM SYS_DOMAIN WHERE FN_DOMAIN_NAME='FN_CLIENT_STATUS') S2
ON SC.FN_CLIENT_STATUS=S2.FN_CODE
LEFT JOIN (SELECT FN_CODE,FN_NAME FROM SYS_DOMAIN WHERE FN_DOMAIN_NAME='FN_CLIENT_FROM') S3
ON SC.FN_CLIENT_FROM=S3.FN_CODE
LEFT JOIN (SELECT FN_CODE,FN_NAME FROM SYS_DOMAIN WHERE FN_DOMAIN_NAME='FN_CLIENT_ISSHARE') S4 ON SC.FN_CLIENT_ISSHARE=S4.FN_CODE
)TB ORDER BY FN_ORDER ASC;select COUNT(*) 总行数 from SYS_CONSTRUCTION_UNIT where FN_ID_PARENT='00000000-0000-0000-0000-000000000000'");
DataSet dt = SqlDataHelper.Query(sql.ToString());
return dt;
}
{
StringBuilder sql = new StringBuilder();
sql.AppendFormat(@"declare @CurrentPageIndex INT,@PageSize INT;
set @CurrentPageIndex={0}
set @PageSize={1}
;with A as (
select * from (
select Row_Number() over(order by FN_UNIT_NAME) RowNo,* from SYS_CONSTRUCTION_UNIT where FN_ID_PARENT='00000000-0000-0000-0000-000000000000'",currentIndex, pageSize);
if (!string.IsNullOrEmpty(where.Trim()))
{
sql.Append(" and " + where);
}
sql.Append(@" ) a where RowNo>=cast(@CurrentPageIndex*@PageSize+1 AS NVARCHAR) and RowNo <=CAST ((@CurrentPageIndex+1)*@PageSize AS NVARCHAR)
UNION ALL
SELECT Row_Number() over(order by B.FN_UNIT_NAME) RowNo,B.* FROM SYS_CONSTRUCTION_UNIT B,A WHERE B.FN_ID_PARENT=A.FN_ID_UNIT
)
SELECT * FROM ( SELECT SC.*,S1.FN_NAME FN_CLIENT_TYPE_NAME,S2.FN_NAME FN_CLIENT_STATUS_NAME,
S3.FN_NAME FN_CLIENT_FROM_NAME,S4.FN_NAME FN_CLIENT_ISSHARE_NAME FROM
(SELECT * FROM A) SC
LEFT JOIN (SELECT FN_CODE,FN_NAME FROM SYS_DOMAIN WHERE FN_DOMAIN_NAME='FN_CLIENT_TYPE') S1
ON SC.FN_CLIENT_TYPE=S1.FN_CODE
LEFT JOIN (SELECT FN_CODE,FN_NAME FROM SYS_DOMAIN WHERE FN_DOMAIN_NAME='FN_CLIENT_STATUS') S2
ON SC.FN_CLIENT_STATUS=S2.FN_CODE
LEFT JOIN (SELECT FN_CODE,FN_NAME FROM SYS_DOMAIN WHERE FN_DOMAIN_NAME='FN_CLIENT_FROM') S3
ON SC.FN_CLIENT_FROM=S3.FN_CODE
LEFT JOIN (SELECT FN_CODE,FN_NAME FROM SYS_DOMAIN WHERE FN_DOMAIN_NAME='FN_CLIENT_ISSHARE') S4 ON SC.FN_CLIENT_ISSHARE=S4.FN_CODE
)TB ORDER BY FN_ORDER ASC;select COUNT(*) 总行数 from SYS_CONSTRUCTION_UNIT where FN_ID_PARENT='00000000-0000-0000-0000-000000000000'");
DataSet dt = SqlDataHelper.Query(sql.ToString());
return dt;
}
0 0
- 树状接口Sql分页
- 关于客户端接口分页sql语句
- 分页接口
- Sql 分页
- SQL 分页
- sql分页
- sql分页
- sql分页
- sql分页
- SQL分页
- SQL分页
- sql分页
- sql 分页
- SQL分页
- SQL分页
- sql 分页
- 分页SQL
- SQL分页
- 基本排序算法(全)
- 【数据结构】二叉树
- Apache Spark源码走读之1 -- Spark论文阅读笔记
- 自己关于Android 通过WebService进行网络编程的总结
- Poj1833 20151113
- 树状接口Sql分页
- 毕业以后
- 浅谈C++容器( 三)
- Darwin Streaming Server程序结构分析
- 1026. Table Tennis (30)
- 高级软件工程-读书笔记之思想篇
- 浅谈C++容器(四)
- Eclipse快捷键 10个最有用的快捷键
- java中数组赋值