Você quer
ALTER TABLE ... ADD COLUMN
seguido por um UPDATE
. Eu inicialmente disse
ALTER TABLE ... ADD COLUMN ... USING
mas isso estava errado em dois aspectos. ADICIONAR COLUNA
recebe um DEFAULT
não USANDO
- e você não pode fazer isso em uma passagem porque nem um DEFAULT
expressão nem um USING
expressão pode não se referir a outras colunas. Então você deve fazer:
ALTER TABLE tablename ADD COLUMN colname varchar;
UPDATE tablename SET colname = ( CASE WHEN othercol < 0 THEN 'Credit' ELSE 'Debit' END );
Pense cuidadosamente se zero deve ser 'Débito' ou 'Crédito' e ajuste o
CASE
adequadamente. Para arredondamento, use
round(amount,2)
. Não há detalhes suficientes em sua pergunta para eu ter certeza de como; provavelmente por UPDATE
ndo a tabela temporária com UPDATE thetable SET amount =round(amount,2)
mas sem o contexto é difícil saber se está certo. Essa declaração joga informações fora de forma irreversível portanto, deve ser usado apenas em uma cópia dos dados.