关于SQLServer数据库语句优化的问题

yateaiayida 2010-09-20 06:35:29

我有一如下优化的SQL语句,但是它怎么不能在SQL数据库上执行呢。(这SQL语句的作用是选择segment_id最大的一条记录)
select * from (select * from table_name order by segment_id desc) where rownum <=1;

报如下的错误:
Server: Msg 1033, Level 15, State 1, Line 1
The ORDER BY clause is invalid in views, inline functions, derived tables, and subqueries, unless TOP is also specified.


请帮忙解决一下,看这SQL语句有什么问题。谢谢。
...全文
58 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
dawugui 2010-09-20
  • 打赏
  • 举报
回复
--oracle
select * from table_name where rownum = 1 order by segment_id desc

--sql server
select top 1 * from table_name order by segment_id desc
「已注销」 2010-09-20
  • 打赏
  • 举报
回复
select * 
from table_name
where rownum <=1 ----这个要是你的字段哦,不是oracle中的那个意思,要不就用 top 1
order by segment_id desc

如果想就返回一条记录:
select top 1 *
from table_name
order by segment_id desc
「已注销」 2010-09-20
  • 打赏
  • 举报
回复
select * 
from table_name
where rownum <=1 ----这个要是你的字段哦,不是oracle中的那个意思,要不就用 top 1 order by segment_id desc


22,302

社区成员

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

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