最近在网上看到了sql分页这个名词, SQL分页都什么情况下会用到啊 有什么好处哈。
看到了 如下语句网上看到得SQL DEMOSELECT TOP 页大小 *
FROM table1
WHERE id NOT IN
(
SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id
)
ORDER BY id
我改写成的SQL--我的TABLE1中有8681条数据
create table table1
(bh char(10) null,
mc char(100) null)
SELECT TOP 100 bh,mc
FROM table1
WHERE bh NOT IN
(
SELECT TOP 100*(20-1) bh FROM table1 ORDER BY id
)
ORDER BY bh第一:执行的时候提示 消息 102,级别 15,状态 1,第 4 行
'(' 附近有语法错误。
我把 SELECT TOP 100*(20-1) bh FROM table1 ORDER BY id 修改成
SELECT TOP 100*19 bh FROM table1 ORDER BY id
执行提示 消息 102,级别 15,状态 1,第 4 行
'19' 附近有语法错误。改成 SELECT TOP 1900 bh FROM table1 ORDER BY id
查处来的内容就是显示了100条记录啊
其他的记录怎么不显示了
看到了 如下语句网上看到得SQL DEMOSELECT TOP 页大小 *
FROM table1
WHERE id NOT IN
(
SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id
)
ORDER BY id
我改写成的SQL--我的TABLE1中有8681条数据
create table table1
(bh char(10) null,
mc char(100) null)
SELECT TOP 100 bh,mc
FROM table1
WHERE bh NOT IN
(
SELECT TOP 100*(20-1) bh FROM table1 ORDER BY id
)
ORDER BY bh第一:执行的时候提示 消息 102,级别 15,状态 1,第 4 行
'(' 附近有语法错误。
我把 SELECT TOP 100*(20-1) bh FROM table1 ORDER BY id 修改成
SELECT TOP 100*19 bh FROM table1 ORDER BY id
执行提示 消息 102,级别 15,状态 1,第 4 行
'19' 附近有语法错误。改成 SELECT TOP 1900 bh FROM table1 ORDER BY id
查处来的内容就是显示了100条记录啊
其他的记录怎么不显示了
解决方案 »
- 请问大家,report server 是用什么端口进行访问的?
- 无法返回Recordset数据
- nvarchar类型的字段在view里乱码
- 内存原因导致服务器SQL服务频繁自动重启,怎么回事?
- !!!在线急等!!电信运营商需要统计每天的忙时,请大侠看能否实现,多谢!
- 请教一下,我这个sql的游标显示没有定义变量,请问如何修改?
- 这个SQL写的我好头痛,大家快帮帮我吧,我快不行了,在线等待
- 高分相送!!!!
- 熟 sql server 安装的朋友请进(在线等先待,立马送126分)
- 怎么判断数据库中字段的位数是多少位?
- 请教大侠,能否优化这段代码,我感觉好冗余啊
- SQLServer安装问题:系统驱动器目录安装位置怎么改(是默认在C盘么?不会吧)
--第1个,还有,你建的表哪有id列
SELECT TOP 100 bh,mc
FROM table1
WHERE bh NOT IN(SELECT TOP (100*(20-1)) bh FROM table1 ORDER BY bh)
ORDER BY bh
--第2个
SELECT TOP 100 bh,mc
FROM table1
WHERE bh NOT IN(SELECT TOP (100*19) bh FROM table1 ORDER BY bh)
ORDER BY bh
--分页是应用程序页面中用到的,一般这样写
--存储过程中传入参数:
/*
@table nvarchar(20)--表名称
@pageIndex int--当前页面
@pageSize int--页面大小
@whereCase nvarchar(100)--查询条件
@orderByCase nvarchar(100)--排序条件
@totalRows int output--总共多少记录
*/
select * from (
select row_number() over(order by bh) rn,* from table1) t
where rn between 100*(20-1)+1 and 100*20
SQL分页都什么情况下会用到啊 有什么好处哈。
这样做不仅能够提高查询效率,而且还能是前台看起来比较简洁。
分页就是便于用户的体验。个人喜欢的分页方法:--利用id大于多少和select top 分页
SELECT TOP 页大小 *
FROM TestTable
WHERE (ID >
(SELECT MAX(id)
FROM (SELECT TOP 页大小*页数 id
FROM 表
ORDER BY id) AS T))
ORDER BY ID
这句不知在SQL2000里如何写?
SELECT TOP 100 *
FROM spbh
WHERE (spbh >
(SELECT MAX(spbh)
FROM (SELECT TOP (100*20) dspid
FROM spbh
ORDER BY spbh) AS T))
ORDER BY spbh
[/code]表spbh中有8000 多条记录 我执行了这一句 只显示了100行记录 其他的记录呢 其他的页面呢,怎么看呢?
当看完第一页最后一行后光标往下移动会自动看到第二页的内容,如此往下看--