在SQL中使用条件UPDATE语句
我希望有这样一个更新声明:在SQL中使用条件UPDATE语句,sql,sql-server,Sql,Sql Server,我希望有这样一个更新声明: SELECT * FROM Employee WHERE age = CASE WHEN (age < 20) THEN age=15 WHEN (age > 20) THEN age= 20 这在SQL Server/MySQL中是不可能的吗?我不想使用存储过程或其他东西 建议我解决这个问题的合适方法。您可以在更新中使用case语句,如下所示 UPDATE Employee SET Age = CASE WHEN (age < 20
SELECT *
FROM Employee
WHERE age = CASE
WHEN (age < 20) THEN age=15
WHEN (age > 20) THEN age= 20
这在SQL Server/MySQL中是不可能的吗?我不想使用存储过程或其他东西
建议我解决这个问题的合适方法。您可以在更新中使用case语句,如下所示
UPDATE Employee
SET Age = CASE WHEN (age < 20) THEN 15
ELSE 20 END
我想你想要的是:
UPDATE EMPLOYEE
SET age =
CASE WHEN AGE < 20 THEN 15
ELSE 20 END
哈,我们一定是走错了路,键入了答案-我提交时没有看到任何其他答案:-我喜欢与op的代码和您的代码的唯一不同之处是更新而不是选择,您添加了一个else子句,并将作业作为案例,而不是放在where中@EBarr-您提交时没有看到任何其他答案的原因是因为您是第一个…谢谢。。它工作得很好。我也在MS SQL Server和MySQL Server上使用它。UPDATE testingtable SET dob=当DATEDIFFCURRENT_时间戳,ADDDATEdob,INTERVAL-2 day>1时的情况,然后ADDDATEdob,INTERVAL-2 day ELSE当前_时间戳在username='bob'处结束;。感谢您的回复。如果不满足条件,请保留值,然后将该值设置为fieldname。例如,ELSE 20结束以上的是ELSE年龄结束