由于我的SQL知识有限,我需要一些更新语句的帮助。
表格示例
MLv | Prob1 | Prob2
------------------------
1 | 0 | 0,080
2 | 0 | 0,075
3 | 0 | 0,060
4 | 0,070 | 0,055
5 | 0,060 | 0,040
对于每一行,我需要乘以Prob1&的值。 Prob2的值来自MLv除以2.我想这样做而不创建一个新列来存储该乘数。
到目前为止我的代码:
USE MyDatabase
DECLARE @MULTIPLIER INT
SET @MULTIPLIER = (SELECT MLv / 2.0 FROM _MyDatabaseTable)
UPDATE _MyDatabaseTable
SET Prob1 = COALESCE (Prob1 * @MULTIPLIER, Prob1)
UPDATE _MyDatabaseTable
SET Prob2 = COALESCE (Prob2 * @MULTIPLIER, Prob2)
这显然不起作用,因为它不知道要选择哪个MLv值以及我被困的地方,因为我不知道如何做到这一点
答案 0 :(得分:0)
您只需使用该列。不需要变量:
UPDATE _MyDatabaseTable
SET Prob1 = COALESCE(Prob1 * MLV / 2.0, Prob1),
Prob2 = COALESCE(Prob2 * MLV / 2.0, Prob2);
只需要进行一次更新。
答案 1 :(得分:0)
这只是单线Qry,尝试如下所示:
UPDATE _MyDatabaseTable SET Prob1 = COALESCE (ISNULL(Prob1,0) * (MLV / 2) , Prob1),Prob2 = COALESCE (ISNULL(Prob2,0) * (MLV / 2), Prob2);