创建一个新表并在一个查询中从SQL Server 2017中的旧表添加数据

时间:2018-08-08 01:15:23

标签: sql sql-server sql-server-2017

我有一个主表,其中包含瑞士的所有城市和地区。

enter image description here

我想为每个城市创建一个表格,然后根据其缩写将城市数据直接从主城市复制到新城市。

例如,为苏黎世创建一个表,并在缩写为ZH时复制旧表中的所有数据。 为沙夫豪森创建一个表,并在缩写为SH时复制旧表中的所有数据。

我使用了以下查询,但是没有用:

CREATE TABLE Zurich AS SELECT * FROM [dbo].[Post Code]
WHERE abbreviation = 'ZH'

3 个答案:

答案 0 :(得分:1)

正如您所说的,您希望创建表,并且它基于abbreviation来创建数据,因此您应该使用缩写而不是Canton,并且应该在INTO中使用SQLSERVER 。您可以在CREATE TABLE <table_name> AS和其他数据库中使用MYSQL

SELECT * INTO Zurich FROM [dbo].[Post Code]
WHERE Abbreviation = 'ZH'

答案 1 :(得分:0)

谢谢大家,我找到了解决方法。

USE [Post Code];  
GO  
CREATE TABLE dbo.Zurich  
( PostCode   int,  
  Place nvarchar(25),
  Canton nvarchar(50)  ,
  Abbreviation nvarchar(2),
  Country nvarchar(11)
);  
GO  
INSERT INTO dbo.Zurich  
    SELECT *   
    FROM [dbo].[Post Code] WHERE Abbreviation = 'ZH';  
GO 

enter image description here

Source

答案 2 :(得分:-1)

选择*从[dbo]进入苏黎世。[邮政编码] 缩写='ZH'

与使用创建表和插入内容所做的相同的操作,请减少行数。