PDA

View Full Version : [SQL] Aggiornamento campi relativi ad un attributo


xool
18-02-2010, 13:19
Salve, ho un problema su un DBMS PostgreSQL, vi spiego:

ho una tabella in cui un attributo di tipo testo contiene in alcuni campi dei caratteri scomodi per una'ltra applicazione. In parole povere alcuni campi contengono delle virgole in mezzo e io le devo togliere e sostituirle con uno spazio.

Ho pensato di usare l'istruzione UPDATE nel seguente modo ma ho difficolta su cosa mettere come argomento di SET:

UPDATE nome_tabella
SET attributo = non so che mettere
WHERE attributo = (SELECT attributo FROM nome_tabella WHERE attributo LIKE '%,%');

ho provato a mettere per SET il seguente:

SET attributo = '% %'

ma chiaramente mi sostituisce quello fra virgolette, ovvero '% %' in tutti i campi che soddisfano il WHERE. La SELECT del WHERE funziona correttamente, perechè eseguita da sola mi seleziona esattamente le tuple relative all'attributo di interesse che contengono al loro interno stringhe con la virgola.

Che si può fare?

yorkeiser
18-02-2010, 13:46
Non conosco postgre, comunque qui (http://www.postgresql.org/docs/current/static/functions-string.html) vedo che dovrebbe esistere una funzione replace() che dovrebbe fare al caso tuo.
Non ho modo di provarla, ma potresti provare con:

UPDATE nome_tabella
SET attributo = replace(attributo , ',' , ' ')

xool
18-02-2010, 15:50
Yes! Era quella che avevo trovato anch'io ed è quella che mi serviva ;)