我必须根据列Num
从表中选择前25个记录。
有两个问题。首先,该表未按Num
排序。我知道可以使用GROUP ORDER BY
来解决这个问题。其次,表中的记录数可能少于25个。
有没有办法在一个SQL语句中执行此选择?
答案 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 BY
而TOP
会听取此记录。
答案 7 :(得分:0)
Select Top 25 [Column] From [Table] Order By [Column]
如果您的记录少于25条,那么只会有很多记录。
答案 8 :(得分:0)
在Firebird中,
select first 25
from your_table
order by whatever