我有一个SQL字段,如下所示:
FIELD_A
cat
dog
bird
mole
dog
Run Code Online (Sandbox Code Playgroud)
我想要 UPDATE
显然,SQL UPDATE语句一次只允许一个SET条件.
如何编写查询以一次完成上述操作?
Jon*_*ler 11
UPDATE AnonymousTable
SET Field_A = (CASE Field_A
WHEN 'dog' THEN 'pug'
WHEN 'bird' THEN 'owl'
WHEN 'cat' THEN 'angora'
ELSE Field_A END)
WHERE Field_A IN ('dog', 'bird', 'cat');
Run Code Online (Sandbox Code Playgroud)
使用WHERE子句,CASE表达式中的ELSE子句是可选的或冗余的 - 但包括ELSE可以提供可靠性.其中一个更严重的错误是不要覆盖"以上都没有"的替代方案,并发现未提及的所有内容都设置为NULL.