关于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语句有什么问题。谢谢。
...全文
28 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过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
回复
zsh0809 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
回复
zsh0809 2010-09-20
select * 
from table_name
where rownum <=1 ----这个要是你的字段哦,不是oracle中的那个意思,要不就用 top 1 order by segment_id desc


回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2010-09-20 06:35
社区公告
暂无公告