PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Dodanie nowej kolumny w tabeli tymczasowej

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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSql:uzyskiwanie dziwnie sformatowanego znacznika czasu ze strefą czasową

  2. Czy istnieje jakaś składnia ucieczki dla zmiennej psql w funkcjach PostgreSQL?

  3. GROUP BY + CASE oświadczenie

  4. 5 najlepszych narzędzi do monitorowania zapytań PostgreSQL

  5. postgresql:uruchom polecenia SQL za pomocą psql w wierszu poleceń