插入表格,案例

问题描述:

我需要插入新表格(2列)与其他表格和第二行情况的区别描述。插入表格,案例

所以像:

Insert into @Temp1 
Select distinct description from Table1, 
CASE 
WHEN aaa then 1 
When bbb then 2 
END 

所以基本上在第一列中的每个插入值,在第二列中去几个可能值中的一个,这取决于第一个值。

这可能吗?

是的,这是可能的。看起来你缺少从Simple CASE expressioninput_expression并在错误的地方FROM ..

INSERT INTO @Temp1 
SELECT DISTINCT description, 
       CASE description 
        WHEN aaa THEN 1 
        WHEN bbb THEN 2 
       END 
FROM Table1 

当然,如果aaa等为常数,而不是从其他列Table1这样推导出的第二列可确定性派生自第一列(并且在将来的更新中它不会被改变),根本没有任何意义可以存储它。您可以使用计算列定义来定义表格变量,或者只需使用CASE表达式即可。计算列的情况下

DECLARE @Temp1 TABLE (
    [description] VARCHAR(50), 
    [calcColumnExample] AS CASE description 
     WHEN 'aaa' THEN 1 
     WHEN 'bbb' THEN 2 
    END 
) 

尝试

为例作这样的:

Insert into @Temp1 
Select distinct description, 
CASE description 
WHEN 'aaa' then 1 
When 'bbb' then 2 
END 
from Table1 

作为一种替代情况下,您还可以使用连接到在线表格,如这个:

SELECT DISTINCT 
    t.Description, 
    x.SpecialValue 
FROM Table1 t 
    INNER JOIN (
    SELECT 'aaa', 1 UNION ALL 
    SELECT 'bbb', 2 UNION ALL 
    … 
) x (Description, SpecialValue) ON t.Description = x.Description