Sie möchten ALTER TABLE ... ADD COLUMN
gefolgt von einem UPDATE .
Ich sagte anfangs ALTER TABLE ... ADD COLUMN ... USING aber das war in zweierlei Hinsicht falsch. ADD COLUMN nimmt einen DEFAULT nicht USING - und Sie können es nicht in einem Durchgang machen, weil weder ein DEFAULT Ausdruck noch ein USING Ausdruck darf nicht auf andere Spalten verweisen.
Sie müssen also Folgendes tun:
ALTER TABLE tablename ADD COLUMN colname varchar;
UPDATE tablename SET colname = ( CASE WHEN othercol < 0 THEN 'Credit' ELSE 'Debit' END );
Überlegen Sie genau, ob Null 'Soll' oder 'Haben' sein soll und passen Sie den CASE an entsprechend.
Verwenden Sie zum Runden round(amount,2)
. Ihre Frage enthält nicht genügend Details, um sicher zu sein, wie; wahrscheinlich per UPDATE Ändern Sie die temporäre Tabelle mit UPDATE thetable SET amount = round(amount,2) aber ohne den Kontext ist es schwer zu wissen, ob das richtig ist. Diese Aussage wirft Informationen unwiderruflich weg daher sollte es nur auf einer Kopie der Daten verwendet werden.