2009-11-15 12 views
8

Quelle est la syntaxe équivalente de la clause MySQL "LIMIT" dans SQL Server. Je voudrais l'utiliser pour faire la pagination de mes résultats. (Veulent montrer records5 à 10)Quelle est la syntaxe équivalente de la clause mysql "LIMIT" dans SQL Server

+0

quelle version de SQL Server? – Antony

+0

Voir aussi http://stackoverflow.com/questions/216673/emulate-mysql-limit-clause-in-microsoft-sql-server-2000 –

+0

Copie possible de [Comment implémenter LIMIT avec Microsoft SQL Server?] (Http: //stackoverflow.com/questions/603724/how-to-implement-limit-with-microsoft-sql-server) – e4c5

Répondre

12

La chose la plus proche est TOP:

Select top 5 * from tablename 

Vous pouvez obtenir une plage (rangées 5 - 10)

SELECT * FROM (
    SELECT TOP n * FROM (
    SELECT TOP z columns  -- (z=n+skip) 
    FROM tablename 
    ORDER BY key ASC 
) 
) 
4

Le plus proche de c'est SELECT TOP X mais il est seulement équivalent à LIMIT X.

Pour LIMIT X, Y, il n'y a pas d'équivalent direct MS-SQL (pour autant que je sache). La solution de Christian est bonne.

MSSQL2005 (partir) a la syntaxe ROW_NUMBER qui pourrait être utile:
http://msdn.microsoft.com/en-us/library/ms186734%28SQL.90%29.aspx

+7

Je me demande vraiment pourquoi Microsoft n'ajoute pas cette fonctionnalité dans le serveur sql? – dvdmn

0

suite = jusqu'à ce que le numéro désiré commence à obtenir des résultats limit = Vous voulez voir comment de nombreuses variables

SELECT TOP (limite) cve_persona FROM persona OERE (cve_persona> cont)