Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Entspricht LIMIT in T-SQL

Sql Server 2005 hat nicht die obige Begrenzungssyntax, die erst 2012 hinzugefügt wurde. Sie sollten die OVER-Klausel und allgemeine Tabellenausdrücke verwenden.

Beispiel von SqlTeam

WITH Members  AS
(
    SELECT  M_NAME, M_POSTS, M_LASTPOSTDATE, M_LASTHEREDATE, M_DATE, M_COUNTRY,
            ROW_NUMBER() OVER (ORDER BY M_POSTS DESC) AS RowNumber
    FROM    dbo.FORUM_MEMBERS
)
SELECT  RowNumber, M_NAME, M_POSTS, M_LASTPOSTDATE, M_LASTHEREDATE, M_DATE, M_COUNTRY
FROM    Members
WHERE   RowNumber BETWEEN 1 AND 20
ORDER BY RowNumber ASC;