标题:关于SQl语句分页问题
只看楼主
chinacompass
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-5-3
结帖率:100%
已结贴  问题点数:20 回复次数:4 
关于SQl语句分页问题
数据是SQl server 2008
有一个表为AlertmessageLog
字段
id 自动编号
DeviceId nvarchar
alertmessagelog nvarchar
comid nvarchar
changetime datatime
这里面存放一百多条数据(有重复)!
id 自动编号里面无重复数据
DeviceId 和comid 有重复数据,但不依靠这两个字段去重复数据!
Alertmessagelog 里面有重复值,去除这个字段的重复数据并显示结果,返回查询结果中要含这个表中全部字段
用以下两种语句均可实现!
1 。select * from AlertmessageLog a
 where not exists(select 1 from AlertmessageLog where alertmessagelog=a.alertmessagelog and id<a.id)

2. select * from AlertmessageLog A
where id=(select min(id) from AlertmessageLog where alertmessagelog=A.alertmessagelog )
我想用top 和not in 实现分页
 如何把select top 2 * from alertMessageLog where id not in(select top 3 id from alertMessageLog)
分页的效果整合到上面查询语句中?我试了几次,但查询结果都是一样的!希望帮我写一下,任意一条都可以,谢谢…………
搜索更多相关主题的帖子: where 
2011-05-03 14:55
go2011
Rank: 6Rank: 6
等 级:侠之大者
帖 子:56
专家分:445
注 册:2011-4-21
得分:0 
select top 2 * from (select * from AlertmessageLog A
where id=(select min(id) from AlertmessageLog where alertmessagelog=A.alertmessagelog )
 ) as b where id not in (select top 3 id from b)
2011-05-03 18:49
chinacompass
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-5-3
得分:0 
回复 2楼 go2011
感谢你的回复!但有错,说b对像错误
2011-05-03 20:21
go2011
Rank: 6Rank: 6
等 级:侠之大者
帖 子:56
专家分:445
注 册:2011-4-21
得分:20 
很抱歉,改成下面这样应该就可以了
select top 2 * from (select * from AlertmessageLog A
where id=(select min(id) from AlertmessageLog where alertmessagelog=A.alertmessagelog )
) as b where id not in (select top 3 id from (select * from AlertmessageLog A
where id=(select min(id) from AlertmessageLog where alertmessagelog=A.alertmessagelog )
) as b
)
2011-05-03 23:36
chinacompass
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-5-3
得分:0 
回复 4楼 go2011
你好!请不要说抱歉,这样我会更不好意思!问题是我问的,你来回答我已经非常感谢了!这次没有错误!谢谢了!
2011-05-04 00:01



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-338651-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.159494 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved