Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/12/2007, 10h26   #1
Membre chevronné
 
Avatar de Z3phur
 
Homme loic
Administrateur de base de données
Inscription : décembre 2007
Messages : 673
Détails du profil
Informations personnelles :
Nom : Homme loic
Âge : 37
Localisation : France, Val de Marne (Île de France)

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

Informations forums :
Inscription : décembre 2007
Messages : 673
Points : 773
Points : 773
Par défaut Problème de select case

Bonjour,

j'ai une requête avec plusieurs colonne en case, la première colonne je la renomme "nature" et je voudrais dans une autre colonne faire un case sur cette colonne "nature" mais j'ai l'erreur suivante :

ORA-00904: "NATURE" : identificateur non valide

voici mon code :

Citation:
select bi.order_code, bo.ordre_initial,
(case
when bo.schema_offre = 'PORT' then 'GoD' else 'Bad'
end) as nature,
(case nature
when 'GoD' then bo1.adresse_ip
end) as pays_ip
from bibit_analysis.bibit_info bi, portail.bibit_ordre bo, portail.bibit_ordre bo1
where bi.order_code = bo.num_ordre
and bo.ordre_initial = bo1.num_ordre
and bi.ip_adress is null
and bo1.adresse_ip is not null
Merci d'avance à ceux qui peuvent m'aider
Z3phur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2007, 10h30   #2
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
tu ne peux pas utiliser l'alias dans le case qui suit tu dois passer par une sous requête eventuellement
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2007, 10h31   #3
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
ou simplement :

Code :
1
2
3
4
5
6
7
8
SELECT bi.order_code, bo.ordre_initial,
DECODE(bo.schema_offre,'PORT','GoD','Bad') AS nature,
DECODE(bo.schema_offre,'PORT',bo1.adresse_ip) AS pays_ip
FROM bibit_analysis.bibit_info bi, portail.bibit_ordre bo, portail.bibit_ordre bo1
WHERE bi.order_code = bo.num_ordre
AND bo.ordre_initial = bo1.num_ordre
AND bi.ip_adress IS NULL
AND bo1.adresse_ip IS NOT NULL
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2007, 10h31   #4
Membre chevronné
 
Avatar de Z3phur
 
Homme loic
Administrateur de base de données
Inscription : décembre 2007
Messages : 673
Détails du profil
Informations personnelles :
Nom : Homme loic
Âge : 37
Localisation : France, Val de Marne (Île de France)

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

Informations forums :
Inscription : décembre 2007
Messages : 673
Points : 773
Points : 773
Merci beaucoup de la réponse rapide, je vais donc faire comme vous me le conseillez

bonne journée

merci.
Z3phur est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h27.


 
 
 
 
Partenaires

Hébergement Web