在sql中使用条件更新语句

Sar*_*nan 43 sql sql-server

我想有这样的更新声明

 SELECT * from Employee
 WHERE age = CASE 
 WHEN (age < 20) THEN age=15
 WHEN (age > 20) THEN age= 20
Run Code Online (Sandbox Code Playgroud)

这在SQL Server/MySQL中是不可能的.我不想使用存储过程或其他东西.

建议我解决这个问题的合适方法

JNK*_*JNK 87

我想你想要的是:

UPDATE EMPLOYEE
SET age =
CASE WHEN AGE < 20 THEN 15
ELSE 20 END
Run Code Online (Sandbox Code Playgroud)

  • 如果不满足条件则希望保留值,然后将该值设置为字段名称。例如,上面的“ELSE 20 END”将是“ELSE Age END” (2认同)

EBa*_*arr 25

您可以在更新中使用case语句,如下所示......

UPDATE Employee 
SET Age = CASE WHEN (age < 20) THEN 15
              ELSE 20 END
Run Code Online (Sandbox Code Playgroud)

  • @EBarr - 你提交时没有看到任何其他答案的原因是因为你是第一个...... (3认同)