Sql server 将具有不同列的多个表合并到一个表中
我有4个表,每个表包含不同的数据和不同的列标题名。我想创建一个新表,将所有数据和所有列包含在一个新表中。 注意:我正在尝试将记录选择到单个结果中。任何表之间都没有关系。每个表都从其他地方收集数据。我正在尝试将这些表合并成1,这样我就可以训练一个机器学习模型。这有用吗?如果您需要更多信息,请告诉我。谢谢 谢谢你的帮助Sql server 将具有不同列的多个表合并到一个表中,sql-server,ddl,Sql Server,Ddl,我有4个表,每个表包含不同的数据和不同的列标题名。我想创建一个新表,将所有数据和所有列包含在一个新表中。 注意:我正在尝试将记录选择到单个结果中。任何表之间都没有关系。每个表都从其他地方收集数据。我正在尝试将这些表合并成1,这样我就可以训练一个机器学习模型。这有用吗?如果您需要更多信息,请告诉我。谢谢 谢谢你的帮助 TABLE [db_ddladmin].[PS_sec_1]( [id] [int] IDENTITY(1,1) NOT NULL, [session_id] [va
TABLE [db_ddladmin].[PS_sec_1](
[id] [int] IDENTITY(1,1) NOT NULL,
[session_id] [varchar](90) NULL,
[Age] [varchar](750) NULL,
[Religious] [varchar](50) NULL,
[Marital] [varchar](50) NULL,
[Sex] [varchar](50) NULL,
[Ethnicity] [varchar](50) NULL,
[Country] [varchar](50) NULL,
[Education] [varchar](50) NULL,
[Zipcode] [varchar](50) NULL,
[Fist_name] [varchar](50) NULL,
[flag] [char](10) NULL,
[timdat] [datetime] NULL
) ON [PRIMARY]
TABLE [db_ddladmin].[PS_sec_2](
[id] [int] IDENTITY(1,1) NOT NULL,
[session_id] [varchar](90) NULL,
[Height] [varchar](750) NULL,
[Weight] [varchar](50) NULL,
[Body_type] [varchar](50) NULL,
[eye] [int] NULL,
[ear] [int] NULL,
[nose] [int] NULL,
[lip] [int] NULL,
[toung] [int] NULL,
[nippel] [int] NULL,
[belly] [int] NULL,
[clit] [int] NULL,
[face] [int] NULL,
[neck] [int] NULL,
[shoulder] [int] NULL,
[chest] [int] NULL,
[back] [int] NULL,
[ribs] [int] NULL,
[stomach] [int] NULL,
[arms] [int] NULL,
[hand] [int] NULL,
[thigh] [int] NULL,
[calf] [int] NULL,
[foot] [int] NULL,
[flag] [char](10) NULL,
[timdat] [datetime] NULL
) ON [PRIMARY]
假设现有表是table1、table2、table3和table4,也假设新表名为tablenew
SELECT *
INTO tablenew
FROM (SELECT col1,
col2,
col3
FROM table1
UNION ALL
SELECT col1,
col2,
col3
FROM table2
UNION ALL
SELECT col1,
col2,
NULL AS Col3
FROM table3)
你可以使用交叉连接,但这将是一个沉船…我希望这是你想要的
SELECT * from [db_ddladmin].[PS_sec_1]
CROSS JOIN [db_ddladmin].[PS_sec_2];
为了便于讨论,假设有两个表,表A和表B。我创建了一个示例数据来说明解决方案: 表a详情: 表B详情: 工会声明:
工会声明应该给出你想要的结果,但是要达到这个结果需要一些体力劳动。希望这能有所帮助。James,我们能得到一些文本数据和这些表的模式吗?创建新表的具体含义是什么?您是否永久性地更改了方案的结构,并希望将数据迁移到新结构?您是否出于某种原因试图复制数据?您是否正在尝试将视图创建为一种可以从中选择的虚拟表?您只是在尝试将记录选择到单个结果中吗?数据是如何关联的?当前数据是什么?结果应该是什么?你试过什么,什么不起作用?我更新了帖子。我刚才提到了两张桌子,因为我不想太长。汉克斯,我更新了帖子。嗨,瑞秋,很不幸,没用。它创建了一个新表,但只包含第一个表的三列。我需要一个包含所有三个表中所有列的表。谢谢你,我想你指的是UNION语句而不是JOIN语句。是的…我编辑了…我编辑了答案…谢谢你指出它。选择*进入表格新建自以创建表格
CREATE TABLE #tableA (ID Int, Name Varchar(10))
INSERT INTO #tableA VALUES (1,'John'),(2,'James')
CREATE TABLE #tableB (City Varchar(10), Country Varchar(10))
INSERT INTO #tableB VALUES ('Paris','France'),('NY','USA')
select ID,Name,NULL as City,NULL as Country from #tableA
UNION ALL
select NULL as ID,NULL as Name,City,Country from #tableB