[SQL, ORACLE] insertion avec un CASE
magic charly
Messages postés
122
Statut
Membre
-
MikyMike -
MikyMike -
bonjour
je ne parviens pas à écrire avec une syntaxe correcte
une insertion en SQL avec un Case:
config :ORACLE 9.2
Code :
UPDATE ma_table t1
SET t1.indispo= CASE
when t1.performance > 0 then 0
when t1.performance = 0 then 15
when t1.performance = -1 then -1
from t1
ELSE -100
end as calcul
j'obtiens l'erreur :
ORA-00905 missing expression
quelqu'un comprendrait il l'erreur que j'ai commis?
je ne parviens pas à écrire avec une syntaxe correcte
une insertion en SQL avec un Case:
config :ORACLE 9.2
Code :
UPDATE ma_table t1
SET t1.indispo= CASE
when t1.performance > 0 then 0
when t1.performance = 0 then 15
when t1.performance = -1 then -1
from t1
ELSE -100
end as calcul
j'obtiens l'erreur :
ORA-00905 missing expression
quelqu'un comprendrait il l'erreur que j'ai commis?
A voir également:
- Insert case sql
- Touche insert - Guide
- Disk boot failure insert system disk and press enter - Guide
- Excel case choix multiple - Guide
- Logiciel sql - Télécharger - Bases de données
- Case à cocher open office - Forum LibreOffice / OpenOffice
1 réponse
Bonjour,
D'aprés ta requête, il ne s'agit pas d'une insertion (INSERT) mais d'une mise a jour (UPDATE).
Pour utiliser le CASE dans ce cas, tu dois avoir une syntawe du type :
UPDATE ma_table t1
SET t1.indispo = (SELECT (CASE
when t1.performance > 0 then 0
when t1.performance = 0 then 15
when t1.performance = -1 then -1
ELSE -100
END)
FROM ma_table t2
where (clé_primaire t1) = (clé_primaire t2)
)
D'aprés ta requête, il ne s'agit pas d'une insertion (INSERT) mais d'une mise a jour (UPDATE).
Pour utiliser le CASE dans ce cas, tu dois avoir une syntawe du type :
UPDATE ma_table t1
SET t1.indispo = (SELECT (CASE
when t1.performance > 0 then 0
when t1.performance = 0 then 15
when t1.performance = -1 then -1
ELSE -100
END)
FROM ma_table t2
where (clé_primaire t1) = (clé_primaire t2)
)