用sql脚本写分页的两种方式
方式一:使用NOT IN进行查询,语法如下。
select top n 查询字段 from 表名order by 查询字段
)order by 表名
select top 10 * from Student where not in (
select top 10 achievement from Student order by achievement //查询成绩在前十名的学生
)order by Student
方式二:使用NOT IN进行查询,语法如下。
select top n * from 表名 where 查询字段>(
select case when max(查询字段) is null then 0 else max(查询字段) end from (
select top n * from 表名 order by 查询字段
)as T --T为别名
)order by 查询字段
例子2:假设我们数据库里面有一张学生表Student,含字段achievement。然后,我们要以每页10条数据进行分页查询
select top 10 * from Student where achievement >(
select case when max(achievement ) is null then 0 else max(achievement ) end from (
select top 10 * from Student order by achievement
)as T --T为别名
)order by achievement
好了,写了两个小例子。或许有人要问了。你写这例子怎么查第3页,第三页的数据呢? 其实这是很简单的,你只需要改动 一下原来的SQL子句就可以了!
比如你要查第3页的数据,每页十条!则SQL句子是:
select case when max(achievement ) is null then 0 else max(achievement ) end from (
select top (10*3) * from Student order by achievement //注意这里
)as T --T为别名
)order by achievement