根据SQL中的条件动态添加列

时间:2015-08-04 13:54:20

标签: sql sql-server sql-server-2008 ssms

我正在使用SSMS 2012.考虑一个包含A,B,C列的表A.我想根据其中一个现有列中的条件动态地向该表添加一个新列D.如何实现这一目标?

查询如下所示, 从#temptbl

中选择col1,col2

对于这个#temptbl,我想添加一个列col3,col3中的值基于col2上的条件。

3 个答案:

答案 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