我该怎么做呢?
select top 1 Fname from MyTbl
在Oracle 11g?
我该怎么做呢?
select top 1 Fname from MyTbl
在Oracle 11g?
当前回答
从表中选择第一行和从表中选择一行是两个不同的任务,需要不同的查询。有许多可能的方法可以做到这一点。其中四个是:
第一个
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)
其他回答
使用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
Use:
SELECT x.*
FROM (SELECT fname
FROM MyTbl) x
WHERE ROWNUM = 1
如果使用Oracle9i+,您可以使用像ROW_NUMBER()这样的分析函数,但它们的性能不如ROWNUM。
从表中选择第一行和从表中选择一行是两个不同的任务,需要不同的查询。有许多可能的方法可以做到这一点。其中四个是:
第一个
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;