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.