我该怎么做呢?

select top 1 Fname from MyTbl

在Oracle 11g?


当前回答

SELECT *
  FROM (SELECT * FROM MyTbl ORDER BY Fname )
 WHERE ROWNUM = 1;

其他回答

使用Oracle 12c(2013年6月),您可以像下面这样使用它。

SELECT * FROM   MYTABLE
--ORDER BY COLUMNNAME -OPTIONAL          
OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY

Use:

SELECT x.*
  FROM (SELECT fname 
          FROM MyTbl) x
 WHERE ROWNUM = 1

如果使用Oracle9i+,您可以使用像ROW_NUMBER()这样的分析函数,但它们的性能不如ROWNUM。

如果你只想要第一个被选中的行,你可以:

select fname from MyTbl where rownum = 1

你也可以用解析函数来排序,取最上面的x:

select max(fname) over (rank() order by some_factor) from MyTbl
select * from (
    select FName from MyTbl
)
where rownum <= 1;

我也遇到过同样的问题,我可以用这个解决方案来解决这个问题:

select a.*, rownum 
from (select Fname from MyTbl order by Fname DESC) a
where
rownum = 1

您可以将结果排序,使第一个值在上面。

祝你好运