是否可以在表上选择,然后使用Case语句将结果填充到不同的列中?我已经看到了使用“Case”进行查询但未插入新列的示例。我尝试过各种各样的组合但是做得很短。
例如,
Table - CLIENTDETAILS
VATRATE - 1, 2, 3, 0 //This is a populated column with 6500 rows
VATPERC - 15.0, 17.5, 20.0, 0.00 //This is an empty column that needs to be filled with case results.
INSERT INTO CLIENTDETAILS(VATPERC) values(
(SELECT CASE VATRATE
WHEN '1' THEN '15.0'
WHEN '2' THEN '17.5'
WHEN '3' THEN '20.0'
WHEN '0' THEN '0.00'
END
FROM CLIENTDETAILS AS CLIENTDETAILS_1))
感谢您一如既往的帮助。
答案 0 :(得分:4)
听起来您只想更新现有行中的其他列
UPDATE CLIENTDETAILS
SET VATPERC =
CASE VATRATE
WHEN '1' THEN '15.0'
WHEN '2' THEN '17.5'
WHEN '3' THEN '20.0'
WHEN '0' THEN '0.00'
END
FROM CLIENTDETAILS;
我建议将VATRATE
和VATPERC
的类型更改为数字类型,这样可以在不进行投射的情况下进行计算。
答案 1 :(得分:0)
案例陈述可根据您的需要使用如下:
INSERT INTO CLIENTDETAILS(VATPERC)
SELECT
CASE
WHEN VATRATE = '1' THEN '15.0'
WHEN VATRATE = '2' THEN '17.5'
WHEN VATRATE = '3' THEN '20.0'
WHEN VATRATE ='0' THEN '0.00'
END
FROM
CLIENTDETAILS