如何将源表中的几行不同的列插入目标表中的一列

时间:2018-07-11 16:20:16

标签: sql sql-server

我的SQL Server数据库中有两个不同的表,Table_1和Table_2。

  • 表_1的列:FirstNamefNameFirst_Name
  • 表_2具有一列:FirstName

我需要将这三列从Table_1转移到FirstName中的列Table_2Table_1中的每一行仅在其中一列中有日期,其他两列为null。我只需要复制包含数据的列。

有人知道如何编写存储过程或查询吗?

The screenshot is an example of Table_1

Second screenshot shows the output I expect

1 个答案:

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