sql - 在更新查询中使用 case 语句

标签 sql sql-server sql-server-2005

是否可以在更新查询中使用 case 语句?我需要做这样的事情:如果人名以“S”开头,则附加“1”,否则附加“2”。

我在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

我喜欢这个,因为它可以节省为每个条件重复“名称+”位 - 在这种情况下,这没什么大不了的,但在其他有更多条件的情况下,它可能会过度重复

关于sql - 在更新查询中使用 case 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2227843/

相关文章:

sql - 如何根据上一行的值对sql结果进行排序?

java - 插入 sql 时将 comboBox 值替换为数字

sql - 另一个将行转列的问题 - SQL Server 2005

sql-server - 如何在 SQL Server 2005 中从 IndexId 获取索引名称

sql - 使用 SQL 查找订单数量超过 X 的客户总数

mysql 'as' 相关

c# - SQL 更新查询返回错误

sql - 使用 SELECT * FROM X WHERE Y is not NULL 替换查询

sql-server-2005 - 如何使用递归 CTE 获取前一行和当前行值?

SQLite HAVING 比较错误