[SQL]Utilisation de CASE ou DECODE

batitou81 -  
 youyouy -
Bonjour tout le monde,
Je souhaiterais effectuer une requete SQL, mais je suis bloqué. Voici une partie de ma requete

SELECT CASE job_id
WHEN 'admin' THEN 2
WHEN 'manager' THEN 1
END post, salaire
FROM work;

Et en fait, je souhaiterais pouvoir réutiliser dans le même SELECT la colonne que j'ai crée qui s'appel "post", par exemple quand j'essai de la réecrire simplement ( c'est à dire ..END post, salaire, post), ça me retourne l'erreur
"POST" invalid identifier.

Quelqu'un aurait une idée de comment la réutiliser, sans refaire le CASE ?
Configuration: Windows XP
Firefox 2.0.0.3

3 réponses

  1. fred
     
    essaye

    SELECT
    CASE job_id
    WHEN 'admin' THEN 2
    WHEN 'manager' THEN 1
    END as post,
    salaire
    FROM work;
    5
  2. beauxoeil
     
    j'ai une colonne classif qui contient les valeurs ('A1', 'A2', 'A3', 'A4', 'B1', 'B2', 'B3', 'B4', 'C1', 'C2', 'C3', 'C4', 'D1', 'D2', 'D3', 'D4', 'A5', 'A8', 'B5', 'B8', 'C5', 'C8', 'D5', 'D8')
    une colonne client_id et ma table s'appelle coface_clients
    je voudrais arriver à regrouper les donnees classif een deux types de catégories
    1
    1. Dinheru Messages postés 1019 Date d'inscription   Statut Membre Dernière intervention   67
       
      Tu devrais y arriver en tapant une requète de ce type :

      Select client_id,
      Case
      When classif in ('A5' , 'A8' , 'B5' , 'B8' , 'C5' , 'C8' , 'D5' , 'D8')
      Then 'Inactif'
      Else 'Actif'
      End as Etat_Client
      From coface_clients
      Where 1

      Voila en espérant t'avoir aidé ^^
      0
      1. beauxoeil > Dinheru Messages postés 1019 Date d'inscription   Statut Membre Dernière intervention  
         
        merci beaucoup ça marche par contre j'ai enlevé le Where 1
        par qu'il me met ce message d'erreur "Expression de type non booléen spécifiée dans un contexte où une condition est attendue, près de '1'"
        0
  3. beauxoeil
     
    Je travaille sur une requête mais j’ai des petits soucis. qui est ce qui pourrait me dépanner ?
    Voici mon problème :
    J’ai des clients en classification ('A1', 'A2', 'A3', 'A4', 'B1', 'B2', 'B3', 'B4', 'C1', 'C2', 'C3', 'C4', 'D1', 'D2', 'D3', 'D4') ce sont les 'CLIENTS_ACTIFS'
    des clients en classif ('A5', 'A8', 'B5', 'B8', 'C5', 'C8', 'D5', 'D8') qui sont les 'CLIENTS_INACTIFS'.
    Je voudrais savoir si vous connaissez une astuce pour créer dans ma requête une colonne ‘CATEGORIE’ qui va classer les clients en Actifs, inactifs.
    Merci d’avance
    0
    1. Dinheru Messages postés 1019 Date d'inscription   Statut Membre Dernière intervention   67
       
      Bonjour,

      Je pense que c'est faisable mais pourais-tu me donner un descriptif de ta table : nom et champs qui la compose ?
      ça sera plus facile pour te donner un exemple de requète.
      0
    2. youyouy
       
      Select client_id,
      Case
      When classif in ('A5', 'A8', 'B5', 'B8', 'C5', 'C8', 'D5', 'D8')
      Then 'CLIENTS_INACTIFS'
      Else 'CLIENTS_ACTIFS'
      End as CATEGORIE
      From Table_clients
      0