我创建了一个包含3栏的表格,饥饿,口渴和幸福。 但是我需要创建一个程序来相应地将“幸福感”值更改为“饥饿和干渴状态”。 这就是我做的:
CREATE PROCEDURE StatusRefresh AS
BEGIN
UPDATE Status
SET Hunger = Hunger - 5, Thirst = Thirst - 5
IF (Hunger > 50 & Thirst > 50)
THEN
SET Happiness = Happiness + 5
ELSE
SET Happiness = Happiness - 5
END
我很确定该错误是由于我的If语句引起的。
答案 0 :(得分:2)
您可以使用case
表达式:
CREATE PROCEDURE StatusRefresh AS
BEGIN
UPDATE Status
SET Hunger = Hunger - 5,
Thirst = Thirst - 5,
Happiness = (CASE WHEN Hunger > 50 and Thirst > 50 THEN Happiness + 5
ELSE Happiness - 5
END)
END;
您可能需要调整限制,具体取决于您是希望更新前还是 中的hunger
和thirst
值。按照书面规定,它使用更新前 的值。