IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

afficher 20 résultat de chaque lettre alphabet


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 148
    Points : 49
    Points
    49
    Par défaut afficher 20 résultat de chaque lettre alphabet
    salut !
    j'ai une table de données qui est de cette forme :
    --------------------------------------------
    nom | age
    --------------------------------------------
    ... | ......

    ce que je cherche c'est d'avoir un résultat qui se compose de 3 lignes pour chaque lettre en ordre alphabétique. 3 pour le A + 3 pour le B + 3 pour le C ...

    merci beaucoup

  2. #2
    Membre confirmé Avatar de juvamine
    Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2004
    Messages : 414
    Points : 502
    Points
    502
    Par défaut
    ça dépend de ton sgbd
    en SqlServer, on pourrait faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select nom, age from (
        select nom, age,
                 row_number() over(partition by LEFT(nom,1) order by nom) rn
        from Table1 ) SR 
    where rn < 4
    Après ça va dépendre de ton Sgbd...
    Juvamine

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 148
    Points : 49
    Points
    49
    Par défaut
    dommage ça marche pas!
    j'ai mysql
    merci

  4. #4
    Membre confirmé Avatar de juvamine
    Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2004
    Messages : 414
    Points : 502
    Points
    502
    Par défaut
    arf...sans fonctions de pagination...je saurais pas faire en une requete...je vais laisser mes collègues s'y coller !
    Juvamine

  5. #5
    Membre éprouvé Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Points : 1 104
    Points
    1 104
    Par défaut
    La même traduite pour MySQL:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT nom, age 
    FROM t AS t1
    WHERE (
        SELECT Count(*)
        FROM t AS t2
        WHERE LEFT(t1.nom, 1) = LEFT(t2.nom, 1)
          AND t1.id < t2.id ) < 4
    En supposant que la colonne id est une clé primaire auto-incrémentée.

    A tester.

    Edit: Ça n'ira pas, parce qu'il n'y a pas de trie sur le nom. Ça semble difficile à réaliser pour MySQL.

  6. #6
    Membre éprouvé Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Points : 1 104
    Points
    1 104
    Par défaut
    J'ai un peu essayé.
    Je pense que celle-ci est bonne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT t1.nom, t1.age, Count(*) AS rowNum
    FROM Table1 AS t1
      JOIN Table1 AS t2
        ON LEFT(t1.nom, 1) = LEFT(t2.nom, 1)
        AND t1.nom >= t2.nom
    GROUP BY t1.nom, t1.age
    HAVING rowNum < 3

Discussions similaires

  1. Calculer et afficher le résultat d'un questionnaire
    Par lipao17 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 22/02/2020, 20h03
  2. Commande SQL pour afficher les résultats d'une lettre
    Par floctc dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 06/04/2009, 11h37
  3. affecter le résultat de chaque colonne à une variable
    Par zut94 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 21/11/2005, 17h35
  4. [QReport] Afficher le résultat d'une requete
    Par PFX dans le forum C++Builder
    Réponses: 2
    Dernier message: 31/05/2005, 14h38
  5. Réponses: 37
    Dernier message: 25/04/2005, 21h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo