首页 > 解决方案 > 如何将 SELECT 查询结果(一列)存储到新表的列中?

问题描述

这是我的查询:-

select 
    (FirstName + ' ' + Lastname) as [Name] 
from 
    c_client 
where 
    MiddleInitial is null

union

select 
    (FirstName + ' ' + MiddleInitial + '''' + Lastname) as [Name] 
from 
    c_client 
where 
    MiddleInitial is not null

执行后,我得到这个输出:

在此处输入图像描述

这是我的新表:

CREATE TABLE AddData(Name VARCHAR(MAX))

我想将SELECT查询生成的结果插入到我的新表中AddData。你能帮我做这件事吗?

标签: sqlsql-server

解决方案


你会使用insert

insert into AddData (Name)
    Select (FirstName + ' ' + Lastname) as [Name]
    from c_client
    where MiddleInitial IS NULL
    UNION 
    Select (FirstName + ' ' + MiddleInitial +''''+ Lastname) as [Name] 
    from c_client
    where MiddleInitial IS NOT NULL;

我建议将逻辑写为:

select (FirstName +
        coalesce(MiddleInitial + '''', '') +
        ' ' +
        Lastname
       ) as Name
into AddData
from c_client c;

您不必先创建表。

此外,如果您确实想删除重复项,请使用select distinct. 目前尚不清楚您是union有意使用删除重复项还是仅组合两个单独的子查询。


推荐阅读