PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Aggiunta di una nuova colonna in una tabella temporanea

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.