Chcesz ALTER TABLE... ADD COLUMN
po którym następuje UPDATE
.
Początkowo powiedziałem ALTER TABLE ... ADD COLUMN ... USING
ale to było złe z dwóch powodów. DODAJ KOLUMNĘ
przyjmuje DEFAULT
nie UŻYWAJĄC
- i nie możesz tego zrobić w jednym przejściu, ponieważ ani DEFAULT
wyrażenie ani USING
wyrażenie nie może odnosić się do innych kolumn.
Musisz więc zrobić:
ALTER TABLE tablename ADD COLUMN colname varchar;
UPDATE tablename SET colname = ( CASE WHEN othercol < 0 THEN 'Credit' ELSE 'Debit' END );
Zastanów się dokładnie, czy zero powinno być „Debet” czy „Kredyt” i dostosuj CASE
odpowiednio.
Do zaokrąglania użyj round(amount,2)
. W twoim pytaniu nie ma wystarczająco dużo szczegółów, abym mógł być pewien, w jaki sposób; prawdopodobnie przez UPDATE
ing tabeli temp za pomocą UPDATE tabeli SET ilość =round(amount,2)
ale bez kontekstu trudno stwierdzić, czy to prawda. To stwierdzenie nieodwracalnie odrzuca informacje więc powinien być używany tylko na kopii danych.