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.