2010-05-21 7 views
1

Y at-il une lib ou une fonction que je peux utiliser pour prendre mon instruction sql de base et transformer l'instruction limit en une instruction compatible sql server?Lib pour l'instruction LIMIT dans SQL SERVER?

+0

Je ne suis pas certain de comprendre la question. Vous voulez dire que SQL Server comprend 'LIMIT' au lieu de' TOP'? –

+0

Dan: J'ai besoin de l'offset. ex: LIMIT offset, montant. Je peux facilement parcourir une page en faisant LIMIT pageNumber * montant, montant. Comment puis-je faire avec sqlserver –

Répondre

3

L'équivalent le plus proche de la fonction LIMIT de MySQL est la fonction TOP. Alors

Select.. 
From Table 
LIMIT 10 

Dans SQL Server serait:

Select TOP 10 ... 
From Table 
Order By ... 

AJOUT

par vos commentaires, vous demandez au sujet de mimer le paramètre offset sur LIMIT. Vous pouvez le faire avec un CTE dans SQL Server 2005+:

With NumberedItems As 
    (
    Select ... 
     , ROW_NUMBER() OVER (Order By ...) As Num 
    From Table 
    ) 
Select ... 
From NumberedItems 
Where Num Between 5 And 20 
+0

J'ai besoin de l'offset pour. limite 5, 15 serait comme le top 20 en ignorant le premier 5. -edit- donc ce n'est pas aussi simple qu'une recherche/remplacement quand il y a deux params. –

+0

@ acidzombie24 - Si vous nous montrez la requête que vous exécuteriez dans MySQL que vous voulez exécuter dans SQL Server, nous pouvons vous montrer comment écrire l'équivalent. – Thomas

+0

@ acidzombie24 - Ah, vous voulez savoir sur le paramètre de décalage qui est une bouilloire différente de poisson. J'ai mis à jour mon message pour illustrer comment vous pouvez y parvenir en utilisant un CTE (et en supposant que vous utilisez SQL Server 2005+). Il n'y a pas de fonction équivalente 1: 1 à la LIMIT avec un paramètre de décalage dans SQL Server. – Thomas

2

On dirait que vous êtes désireux d'utiliser LIMIT est une fonctionnalité pour compenser la pagination, auquel cas la question SO "What is the best way to paginate results in MS SQLServer" a une très bonne réponse acceptée .

+0

Ok c'est bon mais je génère le SQL. Le code existant génère une limite qui est facilement comprise. J'ai besoin de quelque chose pour convertir le sql. –