【问题标题】:How to insert several different columns from source table to one column in destination table如何将源表中的多个不同列插入目标表中的一列
【发布时间】:2018-07-11 16:20:15
【问题描述】:

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

  • Table_1 有列:FirstNamefNameFirst_Name
  • Table_2 有一列:FirstName

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

有谁知道如何编写可以做到这一点的存储过程或查询?

The screenshot is an example of Table_1

Second screenshot shows the output I expect

【问题讨论】:

  • 查看COALESCE函数。

标签: sql sql-server


【解决方案1】:

使用 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多