使用 case 语句插入到不同的列

ull*_*i83 1 sql sql-server-2008

是否可以在表上进行选择,然后使用 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))
Run Code Online (Sandbox Code Playgroud)

感谢您一如既往的帮助。

Stu*_*tLC 5

听起来您只想更新现有行中的不同列

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;
Run Code Online (Sandbox Code Playgroud)

在这里摆弄

VATRATE然而,我建议将和的类型更改VATPERC为数字类型,这将允许在不进行强制转换的情况下完成计算。