【发布时间】:2016-11-30 18:13:30
【问题描述】:
我是 SQL 新手,需要一些帮助。我有一个包含一些数值的表,我需要用表中其他列的计算填充一列(所有值都为空)。 例如。我有一些价值和总价值。我需要另一列来计算这两者之间的百分比。
我有很多列需要根据不同的列进行计算。例如。列名“risk1”将帮助我计算和填充另一个名为“1per”的列。我的代码如下所示:
UPDATE DPRA2_Export
SET "1Per" = ((CAST(Risk1 AS DECIMAL (38,2))/CAST(GrandTotal AS DECIMAL(38,2))) * 100);
UPDATE DPRA2_Export
SET "2Per" = ((CAST(Risk2 AS DECIMAL (38,2))/CAST(GrandTotal AS DECIMAL(38,2))) * 100);
UPDATE DPRA2_Export
SET "3Per" = ((CAST(Risk3 AS DECIMAL (38,2))/CAST(GrandTotal AS DECIMAL(38,2))) * 100);
..................
就这样继续下去。
有没有办法让我循环这个东西而不是一遍又一遍地写。代码中唯一改变的是列名“Risk%”和 SET 列名“%Per”
有什么想法吗?
【问题讨论】:
-
桌子上有多少列?
-
目前有5个,但会增加。如果可能的话,我想要一种动态的方式来做到这一点。
-
老实说,在这几列中,编写动态内容比仅维护标准更新语句需要更长的时间。
-
你想把它包装成自动运行的东西,还是生成更新语句,然后手动运行?
-
列数将根据定期更新而增加。所以我真的希望代码更通用,而不是为每个创建的新列创建一行。将来它可能会自动运行。我正在为此努力。
标签: sql for-loop multiple-columns