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.