Chcete ALTER TABLE ... PŘIDAT SLOUPEK
následuje UPDATE
.
Původně jsem řekl ALTER TABLE ... PŘIDAT SLOUPEK ... POMOCÍ
ale to bylo špatně ve dvou ohledech. PŘIDAT SLOUPEC
má hodnotu VÝCHOZÍ
ne POUŽÍVÁNÍ
- a nemůžete to udělat v jednom průchodu, protože ani DEFAULT
výraz ani USING
výraz nemusí odkazovat na jiné sloupce.
Takže musíte udělat:
ALTER TABLE tablename ADD COLUMN colname varchar;
UPDATE tablename SET colname = ( CASE WHEN othercol < 0 THEN 'Credit' ELSE 'Debit' END );
Dobře si rozmyslete, zda nula má být 'Debet' nebo 'Credit' a upravte CASE
podle toho.
Pro zaokrouhlování použijte round(amount,2)
. Ve vaší otázce není dost podrobností, abych si byl jistý jak; pravděpodobně do UPDATE
přechod do dočasné tabulky pomocí AKTUALIZOVAT tabulku SET množství =round(částka,2)
ale bez kontextu je těžké vědět, jestli je to správné. Toto prohlášení nenávratně zahodí informace takže by měl být použit pouze na kopii dat.