为简单起见,我说我有一个专栏' Hour'这是10或12的值。我希望更新一个新列,Hour_type将是' A'如果小时值为10或B如果为12,依此类推。我可以输出一列,' Hour_type'通过使用CASE,如下
SELECT CASE WHEN Hour = 10 then 'A'
WHEN hour = 12 then 'B'
else 'c'
end
as Hour_type
from Traffic_Counts
这会输出正确的答案,但不会将值插入表中。
我希望使用这些值设置表中存在的列。
SELECT CASE WHEN Hour = 10 then 'A'
WHEN hour = 12 then 'B'
end
as Hour_type
from Traffic_Counts set Hour_type = Hour_type
这会导致语法错误。
在伪代码中,我试图添加一个' if'到这个简单的更新列
update table set Hour_type = 'a' if Hour = 10,
'b' if Hour = 12;
答案 0 :(得分:1)
使用它,但我不确定你在做什么。 如果HOUR不是10或12
,则返回'a','b'或'X'update table set Hour_type = IF(HOUR = 10 , 'a', IF(HOUR = 12, 'b', 'X'));
答案 1 :(得分:1)
case [...] end
块是一个表达式。 update
用于表达式中的set
列。因此,只需取整个case [...] end
块并将其update
的右侧放到所需的列中即可。这也适用于任何其他select
表达式(禁止冲突的类型等)
答案 2 :(得分:0)
您可以使用案例陈述来更新记录。通过查询链接