在SQL中设置循环

时间:2017-12-07 19:44:18

标签: sql loops

有人可以告诉我如何在SQL中作为循环执行此操作吗?

update Bank set Report_date_next='2014-02-28' where Reporting_date='2014-01-31'
update Bank set Report_date_next='2014-03-31' where Reporting_date='2014-02-28'
update Bank set Report_date_next='2014-04-30' where Reporting_date='2014-03-31'
update Bank set Report_date_next='2014-05-31' where Reporting_date='2014-04-30'
update Bank set Report_date_next='2014-06-30' where Reporting_date='2014-05-31'
update Bank set Report_date_next='2014-07-31' where Reporting_date='2014-06-30'

这个列表还有很长一段时间,所以我需要一个关于如何找到最后一个单元格的计数器,类似于VBA中的XlDown。

1 个答案:

答案 0 :(得分:2)

您最好使用CASE声明:

UPDATE Bank
SET Report_date_next = CASE WHEN Reporting_date = '2014-01-31' THEN '2014-02-28'
                            WHEN Reporting_date = '2014-02-28' THEN '2014-03-31'
                            WHEN ...etc
                        END

如果您使用您正在使用的DBMS标记问题,则可能会有更简单的方法,具体取决于您可以使用的功能。

例如,您可以执行SQL Server 2012+:

UPDATE Bank
SET report_date_next = EOMONTH(Reporting_date,1)