我正在尝试将一个表复制到另一个表,如果原始表中的一个项为null,则插入默认值。
INSERT INTO Table2(ColA, ColB, ColC)
SELECT Table1.ColA, Table1.ColB, (if Table1.ColC is null {'NewValue'} else {Table1.ColC})
不知道我是否接近正确答案。
答案 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