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.