sql分页查询问题(数据库高手请进)

selecttop10*fromshebeiwhereidnotin(selecttop"&(CInt(pagenum)-1)*10&"idfromshebeiorder... select top 10 * from shebei where id not in (select top " & (CInt(pagenum) - 1) * 10 & " id from shebei order by id desc) order by id desc"
一般的查询如上边的sql语句,我想按照其他的列进行order by,但是出现的结果不准确,因为order by的列相同的数太多,如何order by,id再order by 我想要的列??
请高手赐教。。。
展开
 我来答
gg157006136
2008-08-04 · 超过19用户采纳过TA的回答
知道答主
回答量:96
采纳率:0%
帮助的人:0
展开全部
select top 10 * from shebei where id not in (select distinct (top " & (CInt(pagenum) - 1) * 10 & ") id from shebei order by id desc) order by id desc"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cyclamen008
2008-08-04 · TA获得超过382个赞
知道小有建树答主
回答量:604
采纳率:0%
帮助的人:491万
展开全部
order by 后面需要排序的列逗号隔开,如果需要倒序,则在对应的列名后面直接跟desc,然后再逗号跟下一个列名。但这样能在读出的数据中进行排序,如果要在页面显示控件上显示出排序效果,则要根据控件特性写代码
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风暴黑科技
2008-08-04 · TA获得超过170个赞
知道小有建树答主
回答量:401
采纳率:0%
帮助的人:0
展开全部
加destinct 就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2db262e5f
2008-08-04 · TA获得超过1496个赞
知道大有可为答主
回答量:1814
采纳率:0%
帮助的人:1444万
展开全部
order by id,列1,列2,列3......
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
广元修宋夏
2019-05-04 · TA获得超过3.8万个赞
知道小有建树答主
回答量:1.2万
采纳率:35%
帮助的人:1134万
展开全部
我提供你三种方法:
1、
select
top
页大小
*
from
table1
where
id
not
in
(
select
top
页大小*(页数-1)
id
from
table1
order
by
id
)
order
by
id
2、
select
top
页大小
*
from
table1
where
id
>
(
select
isnull(max(id),0)
from
(
select
top
页大小*(页数-1)
id
from
table1
order
by
id
)
a
)
order
by
id
3、
select
top
页大小
*
from
(
select
rownumber()
over
(order
by
id)
as
rownumber,*
from
table1
)
a
where
rownumber
>
页大小*(页数-1)
方法1:(利用not
in和select
top分页)
效率次之,需要拼接sql语句
方案2:(利用id大于多少和select
top分页)效率最高,需要拼接sql语句
方法3:(利用sql的游标存储过程分页)
效率最差,但是最为通用
你可以进行适当修改,如有疑问,可以发我短信。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 4条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式