我正在使用SSMS 2012.考虑一个包含A,B,C列的表A.我想根据其中一个现有列中的条件动态地向该表添加一个新列D.如何实现这一目标?
查询如下所示, 从#temptbl
中选择col1,col2对于这个#temptbl,我想添加一个列col3,col3中的值基于col2上的条件。
答案 0 :(得分:1)
要添加列,您需要ALTER
表格
假设您要为COL3
ALTER TABLE #temptbl
ADD col3 INTEGER
要根据col2上的条件更新col3中的值,您需要执行UPDATE
并使用CASE
语句检查条件:
如果COL3
等于2,请假设您要在COL2
中设置值3
UPDATE #temptbl
SET col3 = CASE WHEN col2 = 2 THEN 3 ELSE null END
答案 1 :(得分:0)
就像汤姆提到的那样,你只能为整个表格提供一个列,而不是有条件的。您可以将其设为计算列,或者在查询表时,如果无法添加列,请使用CASE
语句。
答案 2 :(得分:0)
在您编辑之后,您仍然想要做的事情仍然非常模糊,但也许这很接近???不知道条件或输出应该是什么,但是当条件不满足时,输出将为NULL。
select col1
, col2
, case when SomeCondition then SomeValue end as Col3
from #temptbl