Agregar una nueva columna en una tabla temporal

Tengo una tabla temporal en una function PostgreSQL y quiero insert una nueva columna VARCHAR . Debería tener un valor que dependa de otra columna de la tabla, denominada "cantidad".

Cuando la cantidad sea positiva, me gustaría que el valor de la fila de la columna sea de crédito y cuando el valor sea negativo, la columna debe ser de débito.

Tengo una request más: quiero networkingondear el valor de la columna de cantidad en 2 dígitos decimales

Desea ALTER TABLE ... ADD COLUMN seguido de una UPDATE .

Inicialmente dije ALTER TABLE ... ADD COLUMN ... USING pero eso estaba mal en dos aspectos. ADD COLUMN toma un DEFAULT no USING – y no puede hacerlo en una pasada porque ni una expresión DEFAULT ni una de USING pueden no referirse a otras columnas.

Entonces debes hacer:

  ALTER TABLE tablename ADD COLUMN colname varchar; UPDATE tablename SET colname = ( CASE WHEN othercol < 0 THEN 'Cnetworkingit' ELSE 'Debit' END ); 

Piense con cuidado acerca de si cero debe ser 'Débito' o 'Crédito' y ajuste el CASE consecuencia.

Para networkingondear, use la round(amount,2) . No hay suficientes detalles en su pregunta para que esté seguro de cómo; probablemente al UPDATE la tabla temporal con UPDATE thetable SET amount = round(amount,2) pero sin el context es difícil saber si es correcto. Esa statement arroja irreversiblemente información, por lo que solo debe usarse en una copy de los datos.