我该怎么做呢?

select top 1 Fname from MyTbl

在Oracle 11g?


当前回答

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

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

其他回答

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

select fname from MyTbl where rownum = 1

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

select max(fname) over (rank() order by some_factor) from MyTbl

从表中选择第一行和从表中选择一行是两个不同的任务,需要不同的查询。有许多可能的方法可以做到这一点。其中四个是:

第一个

select  max(Fname) from MyTbl;

第二个

select  min(Fname) from MyTbl;

第三

select  Fname from MyTbl  where rownum = 1;

第四

select  max(Fname) from MyTbl where rowid=(select  max(rowid) from MyTbl)
select * from (
    select FName from MyTbl
)
where rownum <= 1;

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

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

你可以这样做

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

您也可以使用分析函数RANK和/或DENSE_RANK,但ROWNUM可能是最简单的。