我正在嘗試使用 INSERT 陳述句根據另一個表中一列的值向新表中的幾列添加值。我正在用 SQLite 撰寫。我受到sqlite 更新觸發器中的這個問題的啟發,該觸發器具有多個 if/Case 條件,這些條件在其中一列中使用了 CASE 陳述句,但我想應用于我添加的所有列。
我寫的代碼類似于:
CREATE TABLE machine_info (
MachineType TEXT,
MaxPower INTEGER,
Frequency REAL);
INSERT INTO machine_info (MachineType, MaxPower, Frequency)
VALUES (
CASE WHEN parts.Machine = "A" THEN "Diode", 200, 60
WHEN parts.Machine = "B" THEN "AC", 500, 50
WHEN parts.Machine = "C" THEN NULL, 500, NULL
);
并且錯誤訊息說Result: near ",": syntax error。我是否在錯誤的地方包裝了 CASE 陳述句?
uj5u.com熱心網友回復:
您可以使用INSERT INTO ... SELECT,但您需要CASE為 3 列中的每一列使用運算式:
INSERT INTO machine_info (MachineType, MaxPower, Frequency)
SELECT
CASE Machine WHEN 'A' THEN 'Diode' WHEN 'B' THEN 'AC' END,
CASE Machine WHEN 'A' THEN 200 WHEN 'B' THEN 500 WHEN 'C' 500 END,
CASE Machine WHEN 'A' THEN 60 WHEN 'B' THEN 50 END
FROM machine_info
WHERE Machine IN ('A', 'B', 'C');
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/341401.html
