是否有可能在更新查询中使用case语句?我需要做这样的事情:如果人名以'S'开头,则追加'1',否则追加'2'。在更新查询中使用case语句
我在SQL Server尝试这样做,也没有工作
UPDATE PERSON CASE WHEN NAME LIKE 'S%' THEN SET NAME = NAME + '1' ELSE SET NAME = NAME + '2' END
是否有可能在更新查询中使用case语句?我需要做这样的事情:如果人名以'S'开头,则追加'1',否则追加'2'。在更新查询中使用case语句
我在SQL Server尝试这样做,也没有工作
UPDATE PERSON CASE WHEN NAME LIKE 'S%' THEN SET NAME = NAME + '1' ELSE SET NAME = NAME + '2' END
我想补充一个稍微不同的变种,我倾向于选择(个人喜好)。
UPDATE Person
SET Name = Name + CASE WHEN Name LIKE 'S%' THEN '1' ELSE '2' END
我喜欢这个,因为它节省重复“姓名+”位为每个条件 - 在这种情况下,它没有大的,但是在更多的条件的其他方案,这可能过于重复
CASE WHEN
返回表达式,而不是一个声明。您可以使用它像这样:
UPDATE PERSON SET NAME = CASE WHEN NAME LIKE 'S%' THEN NAME + '1' ELSE NAME + '2' END
这将是:
update person
set name = case when name left(name,1) = 'S' then name + '1' else name + '2' end