如何在不排序的情况下选择表格中的前10行?

时间:2008-11-22 07:53:34

标签: sql-server

  

可能重复:
  How do I select last 5 rows in a table without sorting?

我想从SQL Server中的表中选择前10条记录,而不是按升序或降序排列表。

3 个答案:

答案 0 :(得分:11)

如果需要随机订单,您可以尝试

select top 10 * from [tablename] order by newid()

答案 1 :(得分:8)

这个问题没有意义。在SQL中,表没有隐式排序。从语义上讲,它们也可以随机顺序返回。

将结果限制为返回的前10行取决于服务器的SQL方言。在MS-SQL服务器中,您使用TOP关键字,而在MySQL中使用LIMIT,在Oracle中您必须使用ROWNUM等。

请提供更多有关您要完成的内容的详细信息。

答案 2 :(得分:4)

SELECT TOP 10< requiredfieldListHere> FROM< TheTableNameHere>

如果您有聚簇索引,这将返回表中的前10条记录。但请注意,这将是糟糕的形式。关系表不应被视为具有任何特定顺序。如果您没有聚集索引,它可能会返回前10个记录,但可以轻松返回随机集。

除非您愿意从表中返回任何10条记录,否则您应该在查询中应用ORDER BY。即使您有聚集索引也是如此,因为将来可能会删除或更改它。