Anda ingin ALTER TABLE ... ADD COLUMN
diikuti dengan UPDATE
.
Saya awalnya mengatakan ALTER TABLE ... ADD COLUMN ... USING
tapi itu salah dalam dua hal. ADD COLUMN
mengambil DEFAULT
bukan USING
- dan Anda tidak dapat melakukannya dalam sekali jalan karena tidak ada DEFAULT
ekspresi atau USING
ekspresi tidak boleh merujuk ke kolom lain.
Jadi Anda harus melakukan:
ALTER TABLE tablename ADD COLUMN colname varchar;
UPDATE tablename SET colname = ( CASE WHEN othercol < 0 THEN 'Credit' ELSE 'Debit' END );
Pikirkan baik-baik apakah nol harus 'Debit' atau 'Kredit' dan sesuaikan CASE
sesuai.
Untuk pembulatan, gunakan round(amount,2)
. Tidak ada cukup detail dalam pertanyaan Anda bagi saya untuk memastikan caranya; mungkin dengan UPDATE
ing tabel temp dengan UPDATE thetable SET amount = round(amount,2)
tetapi tanpa konteksnya, sulit untuk mengetahui apakah itu benar. Pernyataan itu membuang informasi secara permanen jadi itu hanya boleh digunakan pada salinan data.