我的SQL Server数据库中有两个不同的表,Table_1和Table_2。
FirstName
,fName
,First_Name
FirstName
。 我需要将这三列从Table_1
转移到FirstName
中的列Table_2
。 Table_1
中的每一行仅在其中一列中有日期,其他两列为null。我只需要复制包含数据的列。
有人知道如何编写存储过程或查询吗?
答案 0 :(得分:2)
使用COALESCE(arg1,arg2,arg3,…),它返回参数中的第一个非空值。这是一个与您的示例数据匹配的示例:
DECLARE @Table1 TABLE (FirstName VARCHAR(25), fName VARCHAR(25), First_Name VARCHAR(25))
DECLARE @Table2 TABLE (FirstName VARCHAR(25))
INSERT INTO @Table1 VALUES ('Sanja', null, null), ('Sanja', null, null),
('Sanja', null, null), (null, null, 'Nick'), (null, 'Bob', null)
INSERT INTO @Table2
SELECT COALESCE(FirstName, fName, First_Name) FROM @Table1
SELECT * FROM @Table2
FirstName
Sanja
Sanja
Sanja
Nick
Bob