[HELP]équivalent de LIMIT sur SQL Server
Dernière réponse : dans Programmation
Bonjour
je souhaite utilisé LIMIT dans une requete SQL, genre SELECT blablabla FROM matable WHERE condition ORDER BY champ LIMIT 10,15
Mais c'est pas possible sous SQL Server...
Comment je peux faire?
En faisant SELECT TOP 5 * FROM ... j'ai les 5 premiers record, mais je veux avoir le 10eme, 11eme, 12eme, etc jusqu'au XXieme...
Si vous avez une solution....
Merci!
N
je souhaite utilisé LIMIT dans une requete SQL, genre SELECT blablabla FROM matable WHERE condition ORDER BY champ LIMIT 10,15
Mais c'est pas possible sous SQL Server...
Comment je peux faire? En faisant SELECT TOP 5 * FROM ... j'ai les 5 premiers record, mais je veux avoir le 10eme, 11eme, 12eme, etc jusqu'au XXieme...
Si vous avez une solution....
Merci!
N
Autres pages sur : help equivalent limit sql server
Lassé par la pub ? Créez un compte
La fonction LIMIT permet de gérer la pagination sous MySQL mais n'a pas déquivalent sous SQL Server. Voici un script permettant de reproduire cette mécanique en envoyant le nombre de résultat par page et le numéro.
http://www.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Pas de déterrage, même pour faire monter l'audience de ton site.
http://www.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Pas de déterrage, même pour faire monter l'audience de ton site.
Pourquoi pas de deterrage ? Je suis en 2010, j'ai la même question, ce sujet est l'un des premiers dans le résultat google et le seul lien de réponse donné en 2003 n'est plus valide.
Du coup les deux réponses donné en 2008 qui ont été censurés ne sont pas lisibles et l'ensemble du sujet est inutile....
Répondre à un sujet 5 ans plus tard c'est pas forcément ridicule... Internet ca ne vit pas que 6 mois.
Du coup les deux réponses donné en 2008 qui ont été censurés ne sont pas lisibles et l'ensemble du sujet est inutile....
Répondre à un sujet 5 ans plus tard c'est pas forcément ridicule... Internet ca ne vit pas que 6 mois.
Bonjour hakanai,
Le déterrage n'est pas interdit. Sinon, au bout de telle période, les sujets seraient fermés automatiquement. Il se trouve que Sacha, auteur en tout et pour tout de deux messages de pub, est venu ici non pas pour donner une solution, mais pour faire de la pub pour son site.
Quelle est donc ta question ? Juste un équivalent de LIMIT sur SQL Server !
Et bien la solution est triviale, il est même dommage que tu ne l'ai pas trouvé tout seul, si tu connais la fonction TOP. Or ziedbg en parle. Donc pas d'excuse. (Il faut juste un peu d'astuce
)
------------------------------
Allez, voici la soluce.
Prendre les éléments 5 à 10, c'est sélectionner les 10 premiers, puis inverser le tri sur ce résultat et prendre les 5 premiers. On peut ajouter un tri supplémentaire pour remettre les choses dans l'ordre logique
En SQLServer, ça donne :
Ça répond à tes deux questions ?
Le déterrage n'est pas interdit. Sinon, au bout de telle période, les sujets seraient fermés automatiquement. Il se trouve que Sacha, auteur en tout et pour tout de deux messages de pub, est venu ici non pas pour donner une solution, mais pour faire de la pub pour son site.
Quelle est donc ta question ? Juste un équivalent de LIMIT sur SQL Server !
Et bien la solution est triviale, il est même dommage que tu ne l'ai pas trouvé tout seul, si tu connais la fonction TOP. Or ziedbg en parle. Donc pas d'excuse. (Il faut juste un peu d'astuce
)------------------------------
Allez, voici la soluce.
Prendre les éléments 5 à 10, c'est sélectionner les 10 premiers, puis inverser le tri sur ce résultat et prendre les 5 premiers. On peut ajouter un tri supplémentaire pour remettre les choses dans l'ordre logique
En SQLServer, ça donne :
SELECT * FROM ( SELECT TOP 5 * FROM ( SELECT TOP 10 * FROM ma_table ORDER BY 1 ) ORDER BY 1 DESC ) ORDER BY 1
Ça répond à tes deux questions ?
Bonjour zeb,
c'est exactement ce que j'ai voulu faire pour selectionner une plage de donnée et cela ne marche pas sur sql server ...
Je fais:
Et l'erreur qui ressort est la suivante :
Server: Msg 156, Level 15, State 1, Line 1
Syntaxe incorrecte vers le mot clé 'FROM'.
Server: Msg 156, Level 15, State 1, Line 6
Syntaxe incorrecte vers le mot clé 'ORDER'.
c'est exactement ce que j'ai voulu faire pour selectionner une plage de donnée et cela ne marche pas sur sql server ...
Je fais:
SELECT TOP 10 FROM ( MA SOUS REQUETE ORDER BY DATE DESC EN SELECT TOP 20 ) ORDER BY DATE ASC
Et l'erreur qui ressort est la suivante :
Server: Msg 156, Level 15, State 1, Line 1
Syntaxe incorrecte vers le mot clé 'FROM'.
Server: Msg 156, Level 15, State 1, Line 6
Syntaxe incorrecte vers le mot clé 'ORDER'.
ROWNUMBER & BETWEEN
SELECT * FROM
(
select *,
ROW_NUMBER() OVER (ORDER BY Truc ASC) AS Rank
FROM T
) X
WHERE Rank BETWEEN 50 AND 100;
http://stackoverflow.com/questions/216673/emulate-mysql...
Lassé par la pub ? Créez un compte
- Contenus similaires :
- Forumsql 2000 server
- ForumExécuter MS SQL Server avec PHP Linux
- ForumImport XML sous SQL Server 2000
- ForumMigration SQL Server vers Oracle
- ForumSous sql server : IN vs EXISTS et NOT IN vs NOT EXISTS
- Forumsql server 2005
- ForumHELP Pb connexion impossible entre FileZilla Server et FileZilla Ftp
- ForumSQL Server 2008 R2 se rapproche
- Foruminsérer des données dans une table SQL server 2000
- Voir plus