我需要插入新表格(2列)與其他表格和第二行情況的區別描述。插入表格,案例
所以像:
Insert into @Temp1
Select distinct description from Table1,
CASE
WHEN aaa then 1
When bbb then 2
END
所以基本上在第一列中的每個插入值,在第二列中去幾個可能值中的一個,這取決於第一個值。
這可能嗎?
我需要插入新表格(2列)與其他表格和第二行情況的區別描述。插入表格,案例
所以像:
Insert into @Temp1
Select distinct description from Table1,
CASE
WHEN aaa then 1
When bbb then 2
END
所以基本上在第一列中的每個插入值,在第二列中去幾個可能值中的一個,這取決於第一個值。
這可能嗎?
是的,這是可能的。看起來你缺少從Simple CASE expression的input_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