U wilt ALTER TABLE ... ADD COLUMN
gevolgd door een UPDATE
.
Ik zei aanvankelijk ALTER TABLE ... ADD COLUMN ... USING
maar dat was in twee opzichten fout. ADD COLUMN
neemt een DEFAULT
niet USING
- en je kunt het niet in één keer doen omdat geen van beide een DEFAULT
uitdrukking noch een USING
uitdrukking mag niet verwijzen naar andere kolommen.
Dus je moet doen:
ALTER TABLE tablename ADD COLUMN colname varchar;
UPDATE tablename SET colname = ( CASE WHEN othercol < 0 THEN 'Credit' ELSE 'Debit' END );
Denk goed na of nul 'Debet' of 'Credit' moet zijn en pas de CASE
. aan dienovereenkomstig.
Gebruik voor afronding round(amount,2)
. Er is niet genoeg detail in uw vraag voor mij om zeker te weten hoe; waarschijnlijk door UPDATE
ing de tijdelijke tabel met UPDATE thetable SET amount = round(amount,2)
maar zonder de context is het moeilijk om te weten of dat klopt. Die verklaring gooit onomkeerbaar informatie weg dus het mag alleen worden gebruikt op een kopie van de gegevens.