bonjour,
je voudrais savoir si il existe un equivalent de la clause "limit" (mysql) pour le tsql ?
cordialement.
bonjour,
je voudrais savoir si il existe un equivalent de la clause "limit" (mysql) pour le tsql ?
cordialement.
Ca existe...
devient en T-SQL :
Code : Sélectionner tout - Visualiser dans une fenêtre à part select * from maTable limit 10
Code : Sélectionner tout - Visualiser dans une fenêtre à part select top 10 * from maTable
oui, mais si je veux faire limit 10 à 50 ?
Alors là ce n'est pas possible à ma connaissance...
Mais si pas facile mais possible : Bon il me semble que le limit est inclusif donc ça donnerai ça :
Imaginons une table test contenant un champ F1 avec des valeurs allant de 0 à 100 :
Te retourne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SELECT F1 FROM ( SELECT TOP 51 F1 FROM ( SELECT TOP 60 F1 FROM TEST ) DERIVEDTBL ORDER BY F1 DESC) DERIVEDTBL ORDER BY F1
10
11
12
....
60
ce qui te donne un équivalent de LIMIT 10,50 8)
effectivement cela peut fonctionner mais comment rendre cela dynamique car il me semble que le TOP n'accepte pas de variable pour fair quelquechose comme TOP @debut_limite
Tu créer la reqûete à la volée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 DECLARE @DEBUT INT DECLARE @FIN INT DECLARE @SQL VARCHAR(1000) SET @DEBUT = 10 SET @FIN = 50 SET @SQL = ' SELECT F1 FROM (SELECT TOP '+ CAST(@FIN+1 AS VARCHAR) +' F1 FROM ( SELECT TOP '+ CAST(@DEBUT+@FIN AS VARCHAR)+' F1 FROM TEST ) DERIVEDTBL ORDER BY F1 DESC) DERIVEDTBL ORDER BY F1 ' EXEC(@SQL)
derniere question :
à quoi sert la fonction derivedtbl ?
C'est simplement un alias qui permet de faire référence aus champs de la requête dans la clause from :
Envoyé par Exemple
Partager