(转载)sql语句解决分页问题】的更多相关文章

<来源网址:http://www.delphifans.com/infoview/Article_353.html>sql语句解决分页问题日期:2005年1月17日 作者:treemon2004 人气:2203 查看:[大字体 中字体 小字体]select top @pagesize b.* from (select top @tre_pagesize 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 orde…
使用传入的总记录数实现一条sql语句完成分页查询     问题:在传统的分页查询的实现中不可避免的需要两条sql语句,一条用于查询数据一条用于查询总记录数.如下面的实际代码所示: Img1 当然如果使用存储过程的话是可以渐少一次数据库来回的,但是它依然是两条sql语句,一条查数据一条查总记录数.但我们在架构层面拒绝使用存储过程,因为它将逻辑分散在了应用程序和数据库中,不好维护,并且在SqlServer2008中也没有足够的证据证明存储过程更高效. 很多人的直觉认为查询总记录数的那行没有必要,但是…
目标:减少SQL查询数据,避免使用一条SQL语句解决复杂问题 反模式:视图使用一步操作,单个SQL语句解决复杂问题 使用一个查询来获得所有结果的最常见后果就是产生了一个笛卡尔积.导致查询性能降低. 如何识别反模式:当出现以下情况时,可能是反模式 1.为什么我的求和.技术返回的结果异常地大? 2.我一整天都在和整个变态的查询语句做斗争.SQL并不是那么的难写,如果你和单条SQL查询纠结了很长时间, 应该重新考虑实现方式. 3.试试再加一个Distinct去除重复数据. 合理使用反模式:…… 解决方…
在应用程序的开发中,如果数据库中的数据量过于的庞大,则需要针对查询数据做分页处理,取出对应分页中的数据,在Sqlserver分页的语句写法中,有两种比较常用,一种是数据表中含有自增量Id的情况,可以根据Id的大小顺序进行分页,另一种是数据库中不存在Int类型的Id的情况,此时就需要通过Row_Number函数来实现分页. (1)数据表中存在自增量Id的情况 假设我们查询的表名称为Student,包含的字段有:Id(Id号,自增变量).Name(姓名).BirthDay(出生日期).按出生日期从早…
1.概述 在网页中如果显示的数据太多就会占据过多的页面,而且显示速度也会很慢.为了控制每次在页面上显示数据的数量,就可以利用分页来显示数据. 2.技术要点 在SQL Server中要实现SQL分页,需要使用子查询来获取上一页的数据进行对比,进而获取最新的数据.使用子查询获取分页数据的语法格式如下: "SELECT TOP [pageSize] * FROM [table] WHERE id NOT IN( SELECT TOP [preNum] id FROM [table] ORDER BY…
在项目开发过程中,遇到数据库的查询问题 一.查询某表字段的信息 select * from syscolumns SELECT object_id('TB_KYChildProject') select * from syscolumns where id=object_id('TB_KYChildProject') and name='IsInheritAdd' 二.表字段添加说明 go from sys.extended_properties p where p.major_id = obj…
在BBS的实现里,jsp与sqlserver 结合的操作中,怎样实现分页,使每页显示根帖的名字,并按发表时间降序排列? 在这里举例说明,page_size为每页显示的条数,pageNo为当前页数,startPos=(pageNo-1)*page_size,pid=0为根帖,pdate为发表时间, 通过执行下面操作即可分页,这里仅列出重点,其他语句请自己补充. PreparedStatement pss=null; ResultSet rss=null; if(pageNo==1){ String…
1. 本月的第一天SELECT  DATEADD(mm,  DATEDIFF(mm,0,getdate()),  0) 2. 本月的最后一天SELECT  dateadd(ms,-3,DATEADD(mm,  DATEDIFF(m,0,getdate())+1,  0)) 3.上个月的第一天select dateadd(m,-1,  DATEADD(mm,  DATEDIFF(mm,0,getdate()),  0)) 4. 上个月的最后一天 SELECT  dateadd(ms,-3,DATE…
1.查询数据库中存在某一列名的表 use [db] go SELECT name FROM sysobjects WHERE id IN (SELECT id FROM syscolumns WHERE name = '列名' ) 其中sysobjects,syscolumns 都是系统表,分别存储的是表信息和字段信息. -------------------------------------------------------------------------------------- 2…
Student(Sid,Sname,Sage,Ssex) 学生表 Course(Cid,Cname,Tid) 课程表 SC(Sid,Cid,score) 成绩表 Teacher(Tid,Tname) 教师表 练习内容: 1.查询“某1”课程比“某2”课程成绩高的所有学生的学号: SELECT a.sid FROM (SELECT sid,score FROM SC WHERE cid=1) a,(SELECT sid,score FROM SC WHERE cid=3) b WHERE a.sc…