使用默认值插入选择

时间:2014-06-25 17:09:04

标签: sql-server if-statement sql-insert

我正在尝试将一个表复制到另一个表,如果原始表中的一个项为null,则插入默认值。

INSERT INTO Table2(ColA, ColB, ColC)
SELECT Table1.ColA, Table1.ColB, (if Table1.ColC is null {'NewValue'} else {Table1.ColC})

不知道我是否接近正确答案。

3 个答案:

答案 0 :(得分:1)

INSERT INTO Table2 (ColA, ColB, ColC)
SELECT ColA, 
       ColB, 
       case when ColC is null 
            then 'NewValue' 
            else ColC
       end
from Table1

INSERT INTO Table2 (ColA, ColB, ColC)
SELECT ColA, 
       ColB, 
       coalesce(ColC, 'newValue')
from Table1

答案 1 :(得分:1)

另一种方法是在表上创建DEFAULT约束。然后,只要您尝试插入NULL,就会得到DEFAULT值:

ALTER TABLE Table2 ADD CONSTRAINT DF_Table2_ColC DEFAULT 'newValue' FOR ColC

答案 2 :(得分:0)

INSERT INTO Table2 (ColA, ColB, ColC)
SELECT ColA, ColB, ISNULL(ColC, 'newvalue')
FROM Table1