Bonjour,
je dois faire pour le boulot une pagination de resultat car on a une grosse base de donnee, j'aimerai savoir comment faire pour recuperer les elements 100 par 100 par exemple.
Merci d'avance
Julien
Bonjour,
je dois faire pour le boulot une pagination de resultat car on a une grosse base de donnee, j'aimerai savoir comment faire pour recuperer les elements 100 par 100 par exemple.
Merci d'avance
Julien
Bonjour,
Voir FAQ
++
Merci
Excusez-moi, j'avais regarder mais jene me doutais pas que c'etais avec la fonction LIMIT
La fonction LIMIT vient de MySQL et permet de faire de la pagination.
Cette fonction n'existe pas avec SQL Server.
Le code fournit dans la FAQ permet de simuler la fonction LIMIT et d'obtenir une pagination de résultat.
++
Bonjour, j'ai essye d'implementer la fonction mais elle ne fonctionne pas, elle ne me retourne que les 20 premier resultats dans ce cas ci
Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT * FROM ( SELECT TOP 40 tbl1.ID, tbl1.WO_WORKORDERNO FROM ( SELECT TOP 20 A.ID, A.WO_WORKORDERNO FROM WorkShop.PLTWKORD as A ORDER BY A.ID asc ) AS tbl1 ORDER BY tbl1.ID desc ) AS tbl2 ORDER BY tbl2.ID asc
Bnojour,
Partitionnez !je dois faire pour le boulot une pagination de resultat car on a une grosse base de donnee
Au niveau des performances, je ne suis pas certain que votre requête soit très rapide, surtout sur un volume de données conséquent ...
J'aurai plutôt vu une colonne auto-incrémentée et indexée
@++
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ALTER TABLE maTable ADD numLigne INT IDENTITY NOT NULL![]()
Bonjour, en quoi consiste l'indexation, car je ne suis pas responsable de la bd je dois juste y faire des acces, donc en terme de modification, je dois vendre la solution a mon superieur. ^^
Donc j'aimerais savoir en quoi consiste l'indexation et IDENTITY
Merci d'avance
La "simulation" de limit qui es proposée est mauvaise.
Essaie plutôt ceci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 WITH Ordered AS ( -- Ici vient ton query SELECT ... , ROW_NUMBER() OVER (ORDER BY SELECT 1) AS Row FROM Sales.SalesOrderHeader ... ) SELECT * FROM Ordered WHERE Row BETWEEN 500 AND 600;
>> Sergejack
Tu as raison celle-ci ne fonctionne pas en l'état. Il faudra corriger cela.
Qu'appelez vous grosse base de données ?je dois faire pour le boulot une pagination de resultat car on a une grosse base de donnee
Comme ça, je pencherais plus sur une solution comme le suggère Elsuket car plus votre table contiendra de lignes de données plus votre requête sera lente.
Pouvez vous poster la DDL de votre table sur laquelle vous faites votre requête pour que nous puissons apporter une solution adéquate à votre problème ?
++
Voici comment on pagine en SQL Server et en utilisant les fonctions normalisées de ranking : (extrait de mon papier : http://sqlpro.developpez.com/sqlserv...page=sql#LII-G)
Voici un exemple, de pagination dans un jeu de résultats avec deux méthodes différentes.
1) Pagination par bloc de ligne controlé (les lignes retournées sont controlées dans le filtre WHERE) :
Ici on retourne les lignes numérotées 10 à 19.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY USR_ID) RNUM, USR_ID, USR_NOM, USR_PRENOM, FROM T_UTILISATEUR_USR) T WHERE RNUM BETWEEN 10 AND 19
2) Pagination par nombre de page (le nombre de page est fixé, le nombre de ligne inconnu, la page retournée est contrôlée dans le filtre WHERE) :
Pour plus d'information sur ces fonctions, lisez l'article que j'ai écrit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT * FROM (SELECT NTILE(25) OVER(ORDER BY USR_ID) NTL, USR_ID, USR_NOM, USR_PRENOM, FROM T_UTILISATEUR_USR) T WHERE NTL = 7
http://sqlpro.developpez.com/article...clause-window/
A +
Ici on fixe le nombre de page à 25 et l'on retourne la page 7
Una autre construction plus élégante est possible via la CTE.
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
* * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *
Partager