我有以下查询:
-- Calculate Clock Position & Structural Grade
SELECT IIF(clock_to - clock_at_from < 0,
12 - (clock_at_from - clock_to),
clock_to - clock_at_from) AS clock_pos_calc,
IIF(clock_pos_calc = 1, 3,
IIF(clock_pos_calc = 2, 4,
IIF(clock_pos_calc > 3, 5, NULL))) AS clock_pos_value
FROM Conditions;
我想将这些查询的结果添加回条件表中以下已存在的字段。
WRITE clock_pos_calc TO clock_pos
WRITE clock_pos_value TO structural_grade if NULL
但不确定如何。我已经尝试过UPDATE和INSERTS但却无法让它发挥得很好。
答案 0 :(得分:1)
查询更新声明
update Conditions
set clock_pos = IIF(clock_to - clock_at_from < 0,
12 - (clock_at_from - clock_to),
clock_to - clock_at_from),
structural_grade = IIF(IIF(clock_to - clock_at_from < 0,
12 - (clock_at_from - clock_to),
clock_to - clock_at_from) = 1, 3,
IIF(IIF(clock_to - clock_at_from < 0,
12 - (clock_at_from - clock_to),
clock_to - clock_at_from) = 2, 4,
IIF(IIF(clock_to - clock_at_from < 0,
12 - (clock_at_from - clock_to),
clock_to - clock_at_from) > 3, 5, NULL)))
WHERE clock_pos IS NULL OR structural_grade IS NULL;
答案 1 :(得分:0)
您可以将<{3}}构造用于此目的,例如
INSERT INTO Conditions (clock_pos, structural_grade)
SELECT IIF(clock_to - clock_at_from < 0,
12 - (clock_at_from - clock_to),
clock_to - clock_at_from) AS clock_pos_calc,
IIF(clock_pos_calc = 1, 3,
IIF(clock_pos_calc = 2, 4,
IIF(clock_pos_calc > 3, 5, NULL))) AS clock_pos_value
FROM Conditions
WHERE clock_pos IS NULL
OR structural_grade IS NULL;