关于max函数的用法,谢谢

welot 2007-10-28 05:50:41
有个表,名字是Product,其中有一个字段是id,int类型,是标识,标识增量是1,象access里的自动编号。那个表有一个索引,索引类型:聚集;唯一;按升序排列。
这个表里有些数据,id字段对应的值分别是35、36、37、38、39、40、41。

我想查前4条记录(top 4)的id字段的最大值,也就是我想获得38这个id号,但怎么查都是查得到41这个id号。

我用的是以下这条命令
select max(id) from (select top 4 id from Product) as TempTable

请问为什么查不到我想要的38?应该怎么改?
...全文
1534 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Limpire 2007-10-28
  • 打赏
  • 举报
回复
order by 在记录取出来之后进行,所以必须在子查询里 order by 限制取前面的4条记录。
welot 2007-10-28
  • 打赏
  • 举报
回复
To:Limpire
谢谢,问题已经解决
能告诉我为什么要加个order by id吗?
Limpire 2007-10-28
  • 打赏
  • 举报
回复
select max(id) from (select top 4 id from Product order by id) as TempTable

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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