我想插入以下内容:
Jan = 0.08745
Feb = 0.07605
Mar = 0.08745
Apr = 0.08365
May = 0.09125
Jun = 0.07985
Jul = 0.08365
Aug = 0.08745
Sep = 0.07224
Oct = 0.08745
Nov = 0.08365
Dec = 0.07985
使用以下列进入表[Phasing]:
[DateKey](YYYYMM, int/not null),
[VersionKey](XXXX, int/not null),
[TypeKey](SmallInt, Not Null),
[Multiplier](0.000, decimal(20,10))
我想:
UPDATE [Phasing]
SET [Multiplier] = 0.08745
WHERE
[TypeKey] = 1
[VersionKey] = 1234
[DateKey] = 201801
SET [Multiplier] = 0.07605
WHERE
[TypeKey] = 1
[VersionKey] = 1234
[DateKey] = 201802
etc....
我需要在大约15个版本中为3x版本(1234,4321,9876)执行此操作。
我目前在第一个where子句中遇到语法错误:
"Incorrect syntax near 'VersionKey'."
答案 0 :(得分:3)
每个语句只能执行一次UPDATE
。因此,您的选项正在执行多个单独的更新,或者您可以使用CASE
表达式执行单个更新:
UPDATE [Phasing]
SET [Multiplier] = CASE WHEN [DateKey] = 201801
THEN 0.08745
WHEN [DateKey] = 201802
THEN 0.07605 END
WHERE
[TypeKey] = 1 AND [VersionKey] = 1234 AND
[DateKey] IN (201801, 201802);