如何从表中选择前N个

时间:2010-07-28 13:43:58

标签: sql

我必须根据列Num从表中选择前25个记录。

有两个问题。首先,该表未按Num排序。我知道可以使用GROUP ORDER BY来解决这个问题。其次,表中的记录数可能少于25个。

有没有办法在一个SQL语句中执行此选择?

9 个答案:

答案 0 :(得分:11)

对于SQL Server:

select top 25 * from table order by Num asc

对于mySQL:

select * from table order by Num asc limit 25

答案 1 :(得分:3)

甲骨文:

Select *
FROM Table
WHERE rownum <= 25

MSSQL:

SELECT TOP 25 * 
from Table

MySQL的:

SELECT * FROM table
LIMIT 25

答案 2 :(得分:1)

select top 25 *
from your_table
order by Num asc

在SQL Server上,将从Num的最低值开始选择25条第一条记录。如果您需要最高,请使用“desc”而不是“asc”。

答案 3 :(得分:1)

根据您正在使用的数据库实现,它可能使用限制语句(如另一个答案所示)或者它可能是这样的:

SELECT TOP 25 Num, blah, blah ...

答案 4 :(得分:1)

这在很大程度上取决于您的数据库,因为没有标准的方法来执行此操作。

例如,在SQL Server中,我使用Row_Number(http://msdn.microsoft.com/en-us/library/ms186734.aspx)来执行此操作,因此我可以选择我感兴趣的组(例如,用于分页),但Top也是的工作原理。

对于Oracle,您可以查看rownum(http://www.adp-gmbh.ch/ora/sql/examples/first_rows.html)。

已经提到过MySQL。

答案 5 :(得分:0)

SELECT ...
  LIMIT 25

答案 6 :(得分:0)

我不确定我是否理解这项要求,但您可以这样做:

SELECT TOP 25 Num FROM Blah WHERE Num = 'MyCondition'

如果没有25条记录,则不会获得25条记录。您可以执行ORDER BYTOP会听取此记录。

答案 7 :(得分:0)

Select Top 25 [Column] From [Table] Order By [Column]

如果您的记录少于25条,那么只会有很多记录。

答案 8 :(得分:0)

在Firebird中,

select first 25 
from your_table
order by whatever