如何在SQL中使用工会

时间:2019-02-05 12:04:18

标签: sql sql-server

SQL中的每个人都想将两个表合并为一个新表, 并且正在从这些表中获取列名,这些列名将其命名为新表,为什么?

代码:

CREATE  TABLE New AS 
Select Phonenumber from Data 
union 
select PhoneNumber from INFO
  

关键字“ AS”附近的语法不正确

5 个答案:

答案 0 :(得分:2)

假设您的数据库支持create table as,您的查询看起来正确。但是,new可能很容易成为数据库中的保留字。我会推荐一个更有用的名称。像这样:

CREATE TABLE PhoneNumbers AS
    SELECT Phonenumber FROM Data 
    UNION
    SELECT PhoneNumber FROM INFO;

在SQL Server(最近添加的标记)中,正确的语法使用INTO

SELECT Phonenumber FROM Data 
INTO PhoneNumbers
UNION
SELECT PhoneNumber FROM INFO;

答案 1 :(得分:1)

您的错误建议我使用SQL Server DBMS SELECT . . . INTO DBMS,

SELECT Phonenumber INTO New_table 
FROM Data 
UNION
SELECT PhoneNumber 
FROM INFO;

如果new_table已经存在,则可以改为:

INSERT INTO  New_table (Phonenumber)
    SELECT Phonenumber INTO New_table 
    FROM Data 
    UNION
    SELECT PhoneNumber 
    FROM INFO;

答案 2 :(得分:1)

您可以使用括号

SELECT x.* 
  INTO [NEW_TABLE]
  FROM 
(Select Phonenumber from Data 
 union      
 select PhoneNumber from INFO
 ) x

答案 3 :(得分:0)

对于使用联合,要使用联合的所有选择组必须具有相同数量的具有自己名称的字段。

尝试:

CREATE TABLE New_table SELECT * FROM (
    SELECT Phonenumber FROM Data 
    UNION
    SELECT PhoneNumber FROM INFO
 );

答案 4 :(得分:0)

您可以像这样使用with子句:

with cte
as
(

Select Phonenumber from [Data] 
union 
select PhoneNumber from .[INFO]
)

SELECT Phonenumber INTO dbo.NEW_TABLE
FROM cte;