select-sql语句的问题 完成分页

问题描述

sql语句的问题 完成分页

rs=stmt.executeQuery("select top "+pageSize+" * from STUDENT where ID not in(select top "+pageSize* (pageNow-1)+" ID from STUDENT) ");
网上找的一个分页 但是这句话里 一直显示 未找到要求的 FROM 关键字 实在是不知道怎么回事儿了 求求求

解决方案

STUDENT 是表名 ID是主键

解决方案二:

把sql语句在数据库中运行一下,看看报的错,然后再改

解决方案三:

基于SQL语句的分页
SQL2000 分页查询语句

解决方案四:

你要是oracle数据库的话,是没有top的。

解决方案五:

sql的分页用存储过程写,这个很好用,我都是写的存储过程,或者分页用分页控件,网上有,很好用,更直接点如果你是.net的页面用LigerUI做分分钟搞定
/******************************
*
分页存储过程
*
*
*
*****************************/
ALTER PROCEDURE [dbo].proc_DataPage, --表名称
@Fields VARCHAR(4000), --显示字段
@SqlCondition VARCHAR(4000), --查询条件 (不用加 where)
@OrderField VARCHAR(250), --排序字段 (ID DESC)
@PageSize INT, --显示记录数
@PageIndex INT --当前页
)
AS
BEGIN
DECLARE @SqlWhere VARCHAR(4000)
DECLARE @ExecuteSql VARCHAR(4000)
DECLARE @CountSql NVARCHAR(1000)
DECLARE @RecordCount INT --记录数
SET @SqlWhere = ''
IF(@SqlCondition!='')
SET @SqlWhere = ' WHERE ' + @SqlCondition
SET @CountSql = 'SELECT @RecordCount = COUNT(*) FROM '+@TableName+''+@SqlWhere
EXEC sp_executesql @CountSql,N'@RecordCount INT OUT',@RecordCount OUT
IF(@PageIndex=1)
BEGIN
set @ExecuteSql = 'SELECT TOP '+cast(@PageSize AS VARCHAR)+' '+@Fields+' FROM '+@TableName+''+@SqlWhere+' ORDER BY '+@OrderField
END
ELSE
BEGIN
set @ExecuteSql = 'SELECT * FROM (SELECT '+@Fields+' , ROW_NUMBER() OVER(ORDER BY '+@OrderField+') AS RowNumber FROM '+@TableName+''+@SqlWhere+') AS temp WHERE RowNumber BETWEEN ('+CAST(@PageIndex AS VARCHAR)+'-1)*'+CAST(@PageSize AS VARCHAR)+'+1 AND '+CAST(@PageIndex AS VARCHAR)+'* '+CAST(@PageSize AS VARCHAR) +' '
END
EXEC(@ExecuteSql)
SELECT @RecordCount AS RecordCount
END

解决方案六:

你得说明下是用的什么库,不同的库操作还是有区别的

解决方案七:

rs=stmt.executeQuery("select * from (SELECT , rownum as rn from STUDENT) rn > "+pageSize(pageNow-1)+" and rn <= "+pageSize*pageNow;
第一个*要用具体的字段替换,否则多出一列rn

时间: 2024-10-31 04:37:22

select-sql语句的问题 完成分页的相关文章

用标准的SQL语句实现查询记录分页

标准|分页|语句 在绝大多数的应用中,返回大量的符合条件的记录是司空见惯的,最典型的莫过于搜索了.在搜索的应用中,用户给出搜索条件,服务器查出符合条件的记录.但往往搜索会返回大量的数据记录,如果在网页中,往往是通过分页的方式来实现,页面提供诸如上一页,下一页等等按钮来实现分页.现在主要有以下几中方式来实现分页:1.EJB的Find方法2.在显示第一页前将所有的记录放在collection对象中,后续的各页都在内存中取.3.每一页都到数据库作一次重复的查询,然后将符合条件的记录显示出来.4.保存前

一条sql 语句搞定数据库分页

antshome(原作)首发:CSDN 一条语句搞定数据库分页 select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段 10 = 每页记录数 20 = (当前页 + 1) * 每页记录数 以上语句即可以实现分页,但是最后取出的结果排序是升序,如果需要结果集为降序(例如时间),则有两种方法可以处理 1.使用以下语句

一条 sql 语句搞定数据库分页

分页|数据|数据库|语句 一条语句搞定数据库分页 select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段 10 = 每页记录数 20 = (当前页 + 1) * 每页记录数 以上语句即可以实现分页,但是最后取出的结果排序是升序,如果需要结果集为降序(例如时间),则有两种方法可以处理 1.使用以下语句,但效率可能要

一条SQL语句搞定Sql2000 分页_MsSql

1.所有记录的分页: SELECT TOP 页大小 * FROM Users WHERE (ID NOT IN (SELECT TOP (页大小*(页数-1)) ID FROM Users ORDER BY ID DESC)) //skip(页大小*(页数-1)) 条记录 ORDER BY ID DESC 2.符合条件记录的分页(注意此时你的查询条件要分布在两个查询语句中,谨记) SELECT TOP 页大小 * FROM Users WHERE +你的查询条件 AND ( ID NOT IN

一条SQL语句搞定Sql2000 分页

1.所有记录的分页: SELECT TOP 页大小 * FROM Users WHERE (ID NOT IN (SELECT TOP (页大小*(页数-1)) ID FROM Users ORDER BY ID DESC)) //skip(页大小*(页数-1)) 条记录 ORDER BY ID DESC 2.符合条件记录的分页(注意此时你的查询条件要分布在两个查询语句中,谨记) SELECT TOP 页大小 * FROM Users WHERE +你的查询条件 AND ( ID NOT IN

经典SQL语句大集合

经典SQL语句大集合,下列语句部分是Mssql语句,不可以在access中使用. 下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL-数据定义语言(CREATE,ALTER,DROP,DECLARE) DML-数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL-数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1.说明:创建数据库 CREATE DATABASE database-name

经典sql语句大全

一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:mssql7backupMyNwind_1.dat' --- 开始 备份 BACKUP DATABASE pubs TO testBack 4.说明:创建新表

经典50个SQL语句大全

  50个常用的sql语句 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 问题: 1.查询"001"课程比"002"课程成绩高的所有学生的学号; select a.S# from (select s#,score from SC where C#='001') a,(select s#,score from SC wh

SQL 语句大全

一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname3.说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始 备份 BACKUP DATABASE pubs TO testBack 4.说明:创建新