Rechercher : dans
Par :

SQL : requete pour afficher les 5 premiers en

Dernière réponse le 7 jun 2009 à 03:22:59 HUVEAU Frantz, le 19 déc 2002 à 01:41:09 
 Signaler ce message aux modérateurs

Comment établir une requete SQL qui m'affiche les 5 premiers enregistrements d'une table 'CLIENTS' ou bien les enregistrements 6, 7, 8, 9 et 10 ?
exemple de table Client(id_clients, nom, prenom)
Merci de me répondre !

1

Obeet, le 19 déc 2002 à 01:46:53
  • +1

SELECT FIRST 5 FROM...
Ca c'est pour les 5 premier
Pour les autres j'avoue que je ne me souviens meme plus si il y a un moyen, il me semble que oui mais c'est a verifier...

ö,ö  "S'il n'y a pas de solution, c'est 
\_/    qu'il n'y a pas de problème"

Répondre à Obeet

2

sebsauvage, le 19 déc 2002 à 09:05:18
  • +3

Ah ?

Moi sous SQL Server c'est:
SELECT TOP 5 clientID, clientName from CLIENTS

Par contre, rien pour choper les clients de X à Y.

Répondre à sebsauvage

3

teebo, le 19 déc 2002 à 09:49:14

Oops, c'est bien possible, ca fait longtemps que je n'ai pas fait de SQL :-(
Mais le FIRST il existe aussi non?

.  .
\_/

Répondre à teebo

4

teebo, le 19 déc 2002 à 10:05:26
  • +3

Oui Seb, tu as completement raison, ca n'existe pas le FIRST...Mea culpa, mea maxima culpa!

Pour la peine je vais tenter ton autre requete:

SELECT TOP 10 clientID, clientName from clients WHERE clientID NOT IN (SELECT TOP 5 clientID, clientName from clients ORDER BY clientID)ORDER BY clientID

C'est pas tres propre mais si je me suis pas pris encore une fois les pieds dans le tapis ca devrait etre un bon point de depart...

.  .
\_/

Répondre à teebo

9

sebsauvage, le 19 déc 2002 à 12:02:16
  • +1

Ah ben ouais pas con. C'est tout simple.

Répondre à sebsauvage

5

kalamit, le 19 déc 2002 à 10:08:22
  • +6

Ah ouais? Avec Mysql, ca donnerait: SELECT * FROM Client LIMIT 0,5; pour afficher les 5 premiers. Et pour les suivants, SELECT * FROM Client LIMIT 5,10;
Parcontre, pas de TOP ni de FIRST...
Voili voilou !

Kalamit,
Je ponce donc j'essuie

Répondre à kalamit

6

teebo, le 19 déc 2002 à 10:31:14

Ils sont lourd MySQL a ne jamais rien faire comme les autres :-D

.  .
\_/

Répondre à teebo

7

kalamit, le 19 déc 2002 à 10:35:40
  • +1

Bah en fait, j'ai jamais trouvé une base qui fait du SQL strict, Oracle a également son PL/SQL tout zarb... Je ne parle meme pas d'ACCCESS et je pense que pour SqlServer, c'est le meme bin's.

Kalamit,
Je ponce donc j'essuie

Répondre à kalamit

10

sebsauvage, le 19 déc 2002 à 12:03:39

Ah la vache, c'est le genre de fonctionnalité que j'aurais aimé avoir sous Microsoft SQL Server 7.
ça nous aurait épargné pas mal de problème.

Répondre à sebsauvage

17

 yousseftsdi, le 7 jun 2009 à 03:22:59
  • +1

SELECT top 10 nom_client
FROM client

Répondre à yousseftsdi

8

ian, le 19 déc 2002 à 11:02:26

Salut,
En fait le problème est que l'on sort du cadre du standard SQL 2.
Toutes ses fonctions de restrictions sur le nombre de lignes retournées dépend directement du SGBD... il y a donc autant de facons de faire qu'il y a de SGBD.
Donne plus d'infos sur le SGBD cible et tu pourra voir ce qu'il est possible de faire.

Répondre à ian

11

toto, le 19 déc 2002 à 13:19:03

Hey ian, réveille toi !!!!!

On est a SQL 3.0 !!!!
:))))

Répondre à toto

14

ian, le 22 déc 2002 à 13:17:44

Salut Toto,

Bah oui je suis au courant mais SQL 3 est une extension 'Objet' de SQL 2. Et tous les SGBD n'implemente pas SQL 3.

a+

Répondre à ian

12

piupiou, le 19 déc 2002 à 22:19:55

Merci à tous pour vos réponses, plus particulière à Kalamit qui a résolu mon problème. Cependeant une petite rectification.
Pour afficher les 5 premiers enregistrements :
SELECT * FROM Client LIMIT 0,5
puis les 5 suivant :
SELECT * FROM Client LIMIT 5,5
le second chiffre indiquant la quantité d'enregistrements à afficher
Voilà @+

Répondre à piupiou

13

kalamit, le 19 déc 2002 à 22:28:13

Oups, je me suis planté, maintenant que tu le dis, ca me parait plus logique. :o)
C'est donc du MySQL !

Kalamit,
Je ponce donc j'essuie

Répondre à kalamit

15

dw, le 24 oct 2006 à 16:01:40

Salut
modeste solution :
$i=0;
$i+=5;
...
SELECT * FROM Client LIMIT '$i',5

et sur chaque page tu recupere $i
avec un +5

Répondre à dw

16

nico, le 28 mai 2009 à 18:17:48

Pour info, il est possible de faire :

SELECT TOP 10 clientID, clientName
FROM Clients
WHERE clientID NOT IN (
SELECT TOP 5 clientID
FROM Clients
)

Répondre à nico