Vuoi ALTER TABLE ... ADD COLUMN
seguito da un UPDATE
.
Inizialmente ho detto ALTER TABLE ... ADD COLUMN ... USING
ma era sbagliato per due ragioni. ADD COLUMN
accetta un DEFAULT
non USING
- e non puoi farlo in un passaggio perché nemmeno un DEFAULT
espressione né un USING
l'espressione potrebbe non fare riferimento ad altre colonne.
Quindi devi fare:
ALTER TABLE tablename ADD COLUMN colname varchar;
UPDATE tablename SET colname = ( CASE WHEN othercol < 0 THEN 'Credit' ELSE 'Debit' END );
Pensa attentamente se zero deve essere "Debito" o "Credito" e modifica il CASE
di conseguenza.
Per arrotondare, usa round(amount,2)
. Non ci sono abbastanza dettagli nella tua domanda per farmi sapere come; probabilmente da UPDATE
ing la tabella temporanea con UPDATE thetable SET amount = round(amount,2)
ma senza il contesto è difficile sapere se è giusto. Questa affermazione elimina irreversibilmente le informazioni quindi dovrebbe essere utilizzato solo su una copia dei dati.