使用LIMIT x,y子句使用mysql或postgresql进行分页很容易。 但是,Oracle或MSSQL不支持它。任何有关原因的见解?
我不是要求替代方案,我知道它们(BTW SQL-SERVER的TOP功能不提供相同的功能)。我想知道LIMIT x,y子句是否有任何技术或许可理由,它对于Web开发(分页)非常有用,并且在MySQL和PostgreSQL中具有非常简洁的语法,语法复杂,有时涉及子查询,在其他RDBMS中。
答案 0 :(得分:2)
MS SQL Server
有TOP (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