请帮忙看看多表查询结果分页处理的SQL语句的错误怎样修改?

oscar_lee 2011-02-17 09:10:40
有一个小项目,用到了多表查询结果分页处理,我用的SQL语句是:

SELECT TOP @pagesize PE_Article.ArticleID, PE_Article.ChannelID, PE_Article.ClassID, PE_Article.Title, PE_Class.ClassName,PE_Channel.ChannelDir FROM PE_Article INNER JOIN PE_Class ON (PE_Class.ClassID=PE_Article.ClassID) INNER JOIN PE_Channel ON (PE_Channel.ChannelID=PE_Article.ChannelID) AND PE_Article.ClassID=301 WHERE PE_Article.ArticleID NOT IN (SELECT TOP @startrow PE_Article.ArticleID, PE_Article.ChannelID, PE_Article.ClassID, PE_Article.Title, PE_Class.ClassName,PE_Channel.ChannelDir FROM PE_Article INNER JOIN PE_Class ON (PE_Class.ClassID=PE_Article.ClassID) INNER JOIN PE_Channel ON (PE_Channel.ChannelID=PE_Article.ChannelID) AND PE_Article.ClassID=301 ORDER BY PE_Article.ArticleID DESC) ORDER BY PE_Article.ArticleID DESC

查询分析器提示错误:

消息 116,级别 16,状态 1,第 1 行
当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式。

请问应该怎样修改才能正确通过?
...全文
41 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
oscar_lee 2011-02-17
  • 打赏
  • 举报
回复
分页语法过关了。谢谢 abcjun188 的提醒。
原来 In 关键字之后,只能跟一个主键。
打一壶酱油 2011-02-17
  • 打赏
  • 举报
回复
PE_Article.ArticleID NOT IN (SELECT TOP @startrow PE_Article.ArticleID, PE_Article.ChannelID, PE_Article.ClassID, PE_Article.Title, PE_Class.ClassName,PE_Channel.ChannelDir FROM

这一段 ,你 select top @startrow PE_Article.ArticleID 就行了,后面的列删掉

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧