有人可以告诉我如何在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。
答案 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)