我正在嘗試使用 update 命令更新表中的 2 列,我必須使用 if 陳述句。桌子:
SQL> create table report(customer_no number primary key, name varchar2(10) not null, current_meter_reading number not null, previous_meter_reading number not null, category_code number not null, units_consumed number, bill_amount number(5,2), remarks varchar2(20));
對于 bill_amount 和備注,我需要使用 if 陳述句,條件:
IF 類別代碼 = 1 賬單金額 = 消耗的單位數 * 0.90,備注 = “國內”
IF 類別代碼 = 2 賬單金額 = 消耗的單位數 * 2.40,備注 =“商業”
IF 類別代碼 = 3 賬單金額 = 消耗的單位數 * 0.50,備注 = “農民”
最終輸出應如下所示:輸出
uj5u.com熱心網友回復:
你會CASE在這里使用一個運算式:
UPDATE report
SET amount = CASE Category_Code WHEN 1 THEN Units_Consumed * 0.90
WHEN 2 THEN Units_Consumed * 2.40
WHEN 3 THEN Units_Consumed * 0.50 END,
remarks = CASE Category_Code WHEN 1 THEN 'DOMESTIC'
WHEN 2 THEN 'COMMERCIAL'
WHEN 3 THEN 'FARMERS' END
WHERE Category_Code IN (1, 2, 3);
但請注意,如果表中的基礎資料可能發生變化,您應該考慮僅使用SELECT具有上述邏輯的 a 作為計算列。也就是說,如果您預計以后可能不得不再次執行此更新,我建議不要執行此更新。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/314316.html
上一篇:包含條件時CTAS較慢
