Rechercher : dans
Par :

[SQL]Utilisation de CASE ou DECODE

Dernière réponse le 18 jun 2008 à 12:09:00 batitou81, le 2 avr 2007 à 12:01:55 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « [SQL]Utilisation de CASE ou DECODE » dans :
UML - Cas d'utilisation (Use cases) VoirCas d'utilisation Un cas d'utilisation (en anglais use case) permet de mettre en évidence les relations fonctionnelles entre les acteurs et le système étudié. Le format de représentation d'un cas d'utilisation est complètement libre mais UML...
SQL - Sous-requêtes VoirExpression des sous-requêtes Effectuer une sous-requête consiste à effectuer une requête à l'intérieur d'une autre, ou en d'autres termes d'utiliser une requête afin d'en réaliser une autre (on entend parfois le terme de requêtes en...
Le langage SQL VoirQu'appelle-t-on SQL? SQL (Structured Query Language, traduisez Langage de requêtes structuré) est un langage de définition de données (LDD, ou en anglais DDL Data Definition Language), un langage de manipulation de données (LMD, ou en anglais DML,...

1

fred, le 11 avr 2007 à 11:22:11
  • +2

Essaye

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

Répondre à fred

2

beauxoeil, le 18 jun 2008 à 11:23:07

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

Répondre à beauxoeil

3

Dinheru, le 18 jun 2008 à 11:33:47

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.

Mar-plij ur chopinad bier melen !!

Répondre à Dinheru

4

beauxoeil, le 18 jun 2008 à 11:52:14

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

Répondre à beauxoeil

5

Dinheru, le 18 jun 2008 à 11:57:51
  • +3

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é ^^
Mar-plij ur chopinad bier melen !!

Répondre à Dinheru

6

 beauxoeil, le 18 jun 2008 à 12:09:00

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'"

Répondre à beauxoeil
Collection CommentÇaMarche.net