【问题标题】:Copy selected data from one table to another in SQL Server在 SQL Server 中将选定数据从一个表复制到另一个表
【发布时间】:2017-02-21 12:51:28
【问题描述】:

我已经写了查询来获取数据。

select Terr, Product 
from sdata, md 
where sdata.PSetID = md.PsetID;

我想将获取的数据复制到新表中。

我尝试了以下查询,但没有成功:

select * 
into ttl 
from 
    (select Terr, Product 
     from sdata, md 
     where sdata.PSetID = md.PsetID);

我做错了什么?

【问题讨论】:

  • Bad habits to kick : using old-style JOINs - 旧式 逗号分隔的表格列表 样式已替换为 ANSI 中的 proper ANSI JOIN 语法-92 SQL 标准(20 多年前),不鼓励使用它
  • @marc_s 我会记住的。从下次开始,我将使用 JOIN 语法。谢谢。

标签: sql sql-server select sql-server-2012


【解决方案1】:

您需要将alias 名称添加到sub-select

SELECT *
INTO   ttl
FROM   (SELECT Terr,
               Product
        FROM   sdata
               INNER JOIN md
                       ON sdata.PSetID = md.PsetID) A; --Here

或者干脆

SELECT Terr,
       Product
INTO   ttl
FROM   sdata
       INNER JOIN md
               ON sdata.PSetID = md.PsetID 

【讨论】:

    【解决方案2】:

    另一个选项使用以下语法:

    选择列名 INTO新表 从表 1;

    在你的情况下:

    select Terr, Product
    into ttl
    from sdata s
    join md m on s.PSetID = m.PsetID
    

    【讨论】:

    • 语法没有错 OP 错过了添加别名
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    相关资源
    最近更新 更多