【发布时间】:2012-09-29 10:19:04
【问题描述】:
这是我的桌子。
我需要做的是创建一个 CASE WHEN UPDATE 查询来更新
CurrentCredit +1 如果 1-15
CurrentCredit +2 如果 16-30
CurrentCredit x.10 并在 >=31 时向上取整
【问题讨论】:
这是我的桌子。
我需要做的是创建一个 CASE WHEN UPDATE 查询来更新
CurrentCredit +1 如果 1-15
CurrentCredit +2 如果 16-30
CurrentCredit x.10 并在 >=31 时向上取整
【问题讨论】:
看例子
类似的东西
UPDATE MyTable
SET CurrentCredit =
CASE
WHEN CurrentCredit BETWEEN 1 AND 15
THEN CurrentCredit + 1
WHEN CurrentCredit BETWEEN 16 AND 30
THEN CurrentCredit +2
WHEN CurrentCredit >= 31
THEN CurrentCredit * 10
ELSE CurrentCredit
END
另外,请记住,如果 CurrentCredit 是 FLOAT,而不是 INT,您可能想尝试类似
UPDATE MyTable
SET CurrentCredit =
CASE
WHEN CurrentCredit >= 1 AND CurrentCredit < 16
THEN CurrentCredit + 1
WHEN CurrentCredit >= 16 AND CurrentCredit < 31
THEN CurrentCredit +2
WHEN CurrentCredit >= 31
THEN CurrentCredit * 10
ELSE CurrentCredit
END;
编辑
对于更正后的请求 (>= 31 CurrentCredit + CEILING(CurrentCredit * 0.1)),请查看使用 CEILING
UPDATE MyTable
SET CurrentCredit =
CASE
WHEN CurrentCredit BETWEEN 1 AND 15
THEN CurrentCredit + 1
WHEN CurrentCredit BETWEEN 16 AND 30
THEN CurrentCredit +2
WHEN CurrentCredit >= 31
THEN CurrentCredit + CEILING(CurrentCredit * 0.1)
ELSE CurrentCredit
END;
【讨论】: