为什么SQL Server中不支持LIMIT子句?

时间:2013-02-02 23:15:43

标签: mysql sql sql-server oracle postgresql

使用LIMIT x,y子句使用mysql或postgresql进行分页很容易。 但是,Oracle或MSSQL不支持它。任何有关原因的见解?

我不是要求替代方案,我知道它们(BTW SQL-SERVER的TOP功能不提供相同的功能)。我想知道LIMIT x,y子句是否有任何技术或许可理由,它对于Web开发(分页)非常有用,并且在MySQL和PostgreSQL中具有非常简洁的语法,语法复杂,有时涉及子查询,在其他RDBMS中。

1 个答案:

答案 0 :(得分:2)

MS SQL ServerTOP (n)条款。对于Oracle,您可以使用ROWNUM。 来自SQL Server

的示例
SELECT TOP 5 * FROM Table

您也可以将ORDER BY clause用作

SELECT TOP 5 * FROM Table ORDER BY col1

来自Oracle

SELECT * FROM Table WHERE ROWNUM <= 5

也适用于Oracle

SELECT * FROM 
(SELECT * FROM Table ORDER BY col1) A WHERE ROWNUM <= 5