VARCHAR
PostgreSQL関数に一時テーブルがあり、新しい列を挿入したいと思います。「amount」という名前のテーブルの別の列に依存する値が必要です。
金額が正の場合は列の行の値を貸方にし、値が負の場合は列の値を借方にします。
もう1つリクエストがあります:金額列の値を小数点以下2桁で四捨五入したい
VARCHAR
PostgreSQL関数に一時テーブルがあり、新しい列を挿入したいと思います。「amount」という名前のテーブルの別の列に依存する値が必要です。
金額が正の場合は列の行の値を貸方にし、値が負の場合は列の値を借方にします。
もう1つリクエストがあります:金額列の値を小数点以下2桁で四捨五入したい
続いALTER TABLE ... ADD COLUMN
てUPDATE
。
私は最初に言っALTER TABLE ... ADD COLUMN ... USING
たが、それは2つの点で間違っていた。式も式も他の列を参照していない可能性がADD COLUMN
あるため、1回のパスでそれを行うことはできませんDEFAULT
。USING
DEFAULT
USING
だからあなたはしなければなりません:
ALTER TABLE tablename ADD COLUMN colname varchar;
UPDATE tablename SET colname = ( CASE WHEN othercol < 0 THEN 'Credit' ELSE 'Debit' END );
ゼロを「借方」にするか「貸方」にするかを慎重に検討し、CASE
それに応じて調整します。
丸めには、を使用しますround(amount,2)
。あなたの質問には、その方法を確認するのに十分な詳細がありません。おそらく、コンテキストUPDATE
を使用して一時テーブルを作成することによってUPDATE thetable SET amount = round(amount,2)
、コンテキストがないと、それが正しいかどうかを判断するのは困難です。そのステートメントは不可逆的に情報を破棄するため、データのコピーでのみ使用する必要があります。