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 :

Changement valeur d'un champ dans une requête


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2003
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 31
    Points : 15
    Points
    15
    Par défaut Changement valeur d'un champ dans une requête
    Bonjour,

    Je dois écrire une requete qui sort 2 champs.
    Il faut que je remplace la valeur initiale du champ 2 par une autre valeur (fonction de la valeur initiale). La nouvelle valeur qu'il doit prendre n'est pas sockée dans ma base de données.

    Exemple :
    FAMILLE; NOM
    Asus; P4G8X Deluxe

    Les conditions sont les suivantes
    Si famille = ASUS alors Famille := Carte mère
    Si famille = INTEL alors Famille := processeur

    Je dois avoir en sortie :
    FAMILLE ; NOM
    Carte mère ; P4G8X Deluxe

    Je ne peux pas faire ça en PL SQL, on m'a dit que c'était faisable via un UNION mais je ne trouve pas comment faire. Si quelqu'un avait une idée ça m'aiderai beaucoup. Merci d'avance.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Avec un union façon bourrin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Select 'Carte mère' AS FAMILLE, Nom From TaTable
    where Famille='ASUS'
    union
     Select 'Processeur' AS FAMILLE, Nom From TaTable
    where Famille='INTEL'
    A mon avis avec plus de deux entrées, tu vas craquer, sinon
    a/Crée une table de correspondance.
    b/Tu peux utiliser decode ou case ... mais cela dépend de ton sgbd.

    Ma préférence va à la solution a/ table de correspondance, mais je suppose que tu y as pensé.

    A+
    Soazig

  3. #3
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Comme tu parles de PL SQL, je suppose que tu utilises ORACLE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT DECODE(Famille, 'ASUS', 'Carte Mère', 'INTEL', 'Processeur', 'Inconnue') AS Famille, Nom
    FROM TaTable 
    WHERE Famille in ('ASUS', 'INTEL')
    Cette requête devrait laisser un peu plus de place aux évolutions.

  4. #4
    Membre à l'essai
    Inscrit en
    Mai 2003
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 31
    Points : 15
    Points
    15
    Par défaut
    Ok super c'est parfait, c'est exactement ce qu'il me fallait.
    Merci beaucoup pour votre aide.
    Bonne continuation.

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

Discussions similaires

  1. [AC-2007] Récupérer une valeur de liste de formulaire comme nom de champ dans une requête
    Par sylviane dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 07/03/2015, 19h09
  2. Insertion de la valeur d'un champ dans une requête
    Par steph_p dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 04/09/2008, 18h21
  3. Récupérer la valeur d'un champ dans une requête
    Par romaintaz dans le forum JDBC
    Réponses: 7
    Dernier message: 18/08/2006, 10h13
  4. Réponses: 7
    Dernier message: 18/05/2005, 16h09
  5. [SQL] Renommer un champ dans une requête
    Par martonpylon12 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 15/11/2003, 02h59

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