-
大话西游666
-- 给一段SQLServer 2005+ 下的代码-- 设置每页条数和取第几页declare @pagesize int, @pagenum intset @pagesize = 20set @pagenum = 1select C.name as [公司], t.time, t.[状态1], t.[状态2], t.[状态3]from ( select cid, time, sum(case bid when 1 then 1 else 0 end) as [状态1], sum(case bid when 2 then 1 else 0 end) as [状态2], sum(case bid when 3 then 1 else 0 end) as [状态3], row_number() over (order by cid, time) as [rank] from A group by cid, time)t inner join C on t.rank between (@pagenum-1)*@pagesize +1 and @pagenum*@pagesize and t.cid = C.cid
-
慕标琳琳
先写个视图,然后对视图进行分页就行了。
-
翻过高山走不出你
int strPage=(pageIndex-1)*pageSize;
int endPage=pageIndex*pageSize;
select top 20 * from
(
select row_number() over(order by a.排序的列 desc)rownum,* from 表名 a
)temp where temp.rownum>=starPage and temp<=endPage
这个是MVC的三层架构,传入pageIndex和pageSize
-
慕的地10843
get it
-
qq_花开花谢_0
结果中列的个数应该不是固定的 真的可以写成视图么?
单单现在这样的行转列,就不是简单一个sql可以实现的吧。。
写了一个sql,但只是【状态1,状态2,状态3】部分实际是需要拼接sql才可行的。。
SELECT * FROM (SELECT #C.name AS 公司,#A.time AS 时间,#B.NAME FROM #A,#B,#Cwhere #A.bid = #B.bid AND #A.cid=#C.cid)XPIVOT(COUNT(name) FOR name IN (状态1,状态2,状态3))a
因为涉及到拼接sql和分页,我推荐用存储过程来做。
不过也许是在下才疏学浅,没能想到好的办法。期待大牛的回答。。