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 :

triage selon un varchar


Sujet :

Langage SQL

  1. #1
    Membre du Club Avatar de restart
    Inscrit en
    Novembre 2009
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 84
    Points : 49
    Points
    49
    Par défaut triage selon un varchar
    bonjour
    j'ai crée un code sql permettant d'afficher la liste des exemplaires d'un livre bien déterminer:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select numinv as \"numero inventaire\", titre, dateachat as \"Date achat \", etat 
    from exemplaire inner join livre on livre.code_livre=exemplaire.code_livre
    ce code fonctionne corréctement et affiche bien la liste des exemplaires présent
    ce que je voudrais faire c'est trier la table selon la valeur de l'attribut etat
    sachant que etat est de type varchar(10) et peut prendre les valeurs vieux, bon et neuf
    y a t'il un moyen pour trier le tableau et afficher les exemplaires neuf,suivi des exemplaires bon et a la fin les exemplaires vieux
    merci

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Ta requête pourrait s'écrire ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT  numinv AS "numero inventaire"
        ,   titre
        ,   dateachat AS "Date achat "
        ,   etat 
    FROM    exemplaire
        INNER JOIN 
            livre
            ON  livre.code_livre = exemplaire.code_livre
    ORDER BY CASE etat
                WHEN    'neuf'  THEN    1
                WHEN    'bon'   THEN    2
                WHEN    'vieux' THEN    3
            END
    Maintenant, si l'état de tes livres faisait référence à une table etat avec un identifiant, un libellé et un indicateur d'ordre de qualité (#id_etat, lib_etat, ord_etat)...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT  exp.numinv AS "numero inventaire"
        ,   liv.titre
        ,   exp.dateachat AS "Date achat "
        ,   ett.lib_etat 
    FROM    exemplaire  AS  exp  
        INNER JOIN 
            livre   AS liv               
            ON  liv.code_livre = exp.code_livre
        INNER JOIN
            etat    AS ett
            ON  exemplaire.id_etat = etat.id_etat
    ORDER BY ett.ord_etat
    Cela te permettrait de faire évoluer la liste des états possibles d'un livre (en ajouter, modifier les libellés) sans modifier tes requêtes et de proposer lors de la saisie des propriétés d'un exemplaire une liste d'états sûre.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. VARCHAR(MAX) selon SQL 2008 ou SQL 2005
    Par ikeabp dans le forum Développement
    Réponses: 4
    Dernier message: 25/07/2012, 10h45
  2. Triage d'une <map> selon le second membre
    Par ccensam dans le forum C++
    Réponses: 4
    Dernier message: 18/04/2007, 22h00
  3. VARCHAR contenant une quote '
    Par tonyskn dans le forum Langage SQL
    Réponses: 2
    Dernier message: 29/05/2003, 19h21
  4. Filtre d'affichage de balise selon leur attributs
    Par Norely dans le forum XML/XSL et SOAP
    Réponses: 10
    Dernier message: 03/04/2003, 14h33
  5. Cryptage en C selon la méthode de césat
    Par shenron dans le forum C
    Réponses: 2
    Dernier message: 31/05/2002, 08h22

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