SQL中的每个人都想将两个表合并为一个新表, 并且正在从这些表中获取列名,这些列名将其命名为新表,为什么?
代码:
CREATE TABLE New AS
Select Phonenumber from Data
union
select PhoneNumber from INFO
关键字“ AS”附近的语法不正确
答案 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;