如何解决在TSQL中将IF ELSE子句与UPDATE结合
如果满足不同条件,则尝试为表中的行合并UPDATE子句。我正在通过Azure SQL上的TSQL进行此操作。
我可以以相互排斥的绿色代码格式运行多个TSQL语句,但我宁愿使用嵌套的IF ELSE语句以使代码更整洁。
解决方法
使用case
表达式一键完成所有操作。
update student set
p2 = case when total_score > 500 then 'pass' else 'fail' end
where p2 is null;
您可以通过使用case
表达式来测试列是否需要更新,从而将以下两个更新组合在一起:
update student set
p1 = case when p1 is null and age > 20 then 'old' else p1 end,p2 = case when p2 is null then case when total_score > 500 then 'pass' else 'fail' end else p2 end
where p2 is null or p1 is null;
注意:作为设计问题,根据学生的年龄设置列值通常不是一个好主意,因为它只会给您一个时间点,因此您通常需要不断对其进行更新。查询表时进行计算要好得多。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。