PDA

View Full Version : [oracle] Modificare valori di colonna


Giak79
10-05-2010, 15:06
ciao dovrei modificare i valori di una colonnaA torgliendo il 20% del valori che stanno in una colonna B. la colonnaA e colonnaB hanno gli stessi valori.

La tabella la chiamiamo pippo .

ditemi se la sintassi è corretta

update table pippo

set colonnaA = (( select Colonna B
from pippo
where colonnaA=colonnaB) * 4/5 )

where colonnaA=colonnaB

shinya
10-05-2010, 15:19
Se ho capito bene il tuo problema, credo potresti semplificare con qualcosa tipo...

update pippo p1
set colonnaA = colonnaA * 4/5
where exists (select 1
from pippo p2
where p2.colonnaB = p1.colonnaA)

...spero di non aver interpretato male la domanda...

Giak79
10-05-2010, 15:39
Se ho capito bene il tuo problema, credo potresti semplificare con qualcosa tipo...

update pippo p1
set colonnaA = colonnaA * 4/5
where exists (select 1
from pippo p2
where p2.colonnaB = p1.colonnaA)

...spero di non aver interpretato male la domanda...

non sono proprio sicuro che tutti i valori della colonnaA siano uguali alla colonnaB, può darsi che colonnaA contenga alcuni valori che siano come valore i 4/5 della colonnaB.

se modifico così può andare ?

update pippo p1
set colonnaA = colonnaB * 4/5
where exists (select 1
from pippo p2
where p2.colonnaB = p1.colonnaA)

Grazie mille per il tuo aiuto ;)

shinya
10-05-2010, 15:47
Non credo cambi molto, dato che abbiamo una 'where p1.colonnaA = p2.colonnaB'; ma non conosco la tua situazione, e soprattutto non ho fatto test.
Fai un pò di prove e vedi se ti tornano i risultati in un ambiente di test.

Giak79
10-05-2010, 15:48
Ok , grazie mille !