是否可以在更新查询中使用case语句?我需要做这样的事情:如果人名以'S'开头,则追加'1',否则追加'2'。
我在sql server中尝试了这个并且它不起作用
UPDATE PERSON CASE WHEN NAME LIKE 'S%' THEN SET NAME = NAME + '1' ELSE SET NAME = NAME + '2' END
答案 0 :(得分:10)
只是添加一个我倾向于偏好的略有不同的变体(根据个人喜好)。
UPDATE Person
SET Name = Name + CASE WHEN Name LIKE 'S%' THEN '1' ELSE '2' END
我喜欢这个,因为它可以为每个条件保存重复“名称+”位 - 在这种情况下它并不重要,但在其他具有更多条件的情况下,它可能会过度重复
答案 1 :(得分:7)
CASE WHEN
返回表达式,而不是语句。您可以像这样使用它:
UPDATE PERSON SET NAME = CASE WHEN NAME LIKE 'S%' THEN NAME + '1' ELSE NAME + '2' END
答案 2 :(得分:2)
它将是:
update person
set name = case when name left(name,1) = 'S' then name + '1' else name + '2' end