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 我想要的列??
请高手赐教。。。 展开
一般的查询如上边的sql语句,我想按照其他的列进行order by,但是出现的结果不准确,因为order by的列相同的数太多,如何order by,id再order by 我想要的列??
请高手赐教。。。 展开
5个回答
展开全部
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"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
order by 后面需要排序的列逗号隔开,如果需要倒序,则在对应的列名后面直接跟desc,然后再逗号跟下一个列名。但这样能在读出的数据中进行排序,如果要在页面显示控件上显示出排序效果,则要根据控件特性写代码
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
加destinct 就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
order by id,列1,列2,列3......
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我提供你三种方法:
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的游标存储过程分页)
效率最差,但是最为通用
你可以进行适当修改,如有疑问,可以发我短信。
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的游标存储过程分页)
效率最差,但是最为通用
你可以进行适当修改,如有疑问,可以发我短信。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |