sql >> Base de Datos >  >> RDS >> PostgreSQL

Agregar una nueva columna en una tabla temporal

Quiere ALTER TABLE ... ADD COLUMN seguido de UPDATE .

Inicialmente dije ALTER TABLE ... ADD COLUMN ... USING pero eso estaba mal por dos motivos. ADD COLUMN toma un DEFAULT no USING - y no puedes hacerlo de una pasada porque tampoco un DEFAULT expresión ni un USING expresión no puede hacer referencia a otras columnas.

Entonces debes hacer:

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

Piense detenidamente si el cero debe ser 'Débito' o 'Crédito' y ajuste el CASE en consecuencia.

Para redondear, use round(amount,2) . No hay suficientes detalles en su pregunta para que yo esté seguro de cómo hacerlo; probablemente por UPDATE ing la tabla temporal con UPDATE thetable SET amount = round(amount,2) pero sin el contexto es difícil saber si eso es correcto. Esa declaración desecha información de forma irreversible por lo tanto, solo debe usarse en una copia de los datos.