‘壹’ sql如何将多个表合并成一个表
--复杂点的方法,
DECLARE @startTime DATETIME --开始的时间
DECLARE @endTime DATETIME --结束的时间
--比如我要得到1月到2月的数据
SET @startTime = '2014-01-01 00:00:00.000' --从新年第一天开始
SET @endTime = GETDATE() --一直到当前时间
--准备创建表
--根据月份创建
DECLARE @mi INT
--(这里必须要是开始时间和结束时间在一年之内的情况,如果不是在一年以内则要另外考虑,懒得写)
SET @mi = MONTH(@endTime) - MONTH(@startTime) + 1 --用结束月份减去开始月份,得到总共要创建几个月份表(加上当前月份)
--PRINT @mi
WHILE @mi >0
BEGIN
DECLARE @tableName VARCHAR(6) --月份表名
DECLARE @sql NVARCHAR(1000)
SET @tableName = '2014'
IF @mi<10
BEGIN
SET @tableName = @tableName + '0'
END
SET @tableName = @tableName + CAST(@mi AS VARCHAR)
IF NOT EXISTS (SELECT * FROM sysobjects WHERE [name] = @tableName AND [type] = 'U')
BEGIN
--如果当前月份表不存在,创建当前月份表
SET @sql = 'CREATE TABLE '+@tableName + ' (MId INT PRIMARY KEY IDENTITY(1,1))'
PRINT @sql
--执行
--EXECUTE sp_executesql N@sql
END
DECLARE @dayName VARCHAR(8) --天表名
WHILE CONVERT(VARCHAR(6),@endTime,112)=@tableName --确定当前时间是否是当前月的
BEGIN
SET @sql = ''
SET @dayName = CONVERT(VARCHAR(8),@endTime,112)
SET @sql = 'INSERT INTO '+@tableName +' VALUES SELECT * FROM ' + @dayName
PRINT @sql
--执行
--EXECUTE sp_executesql N@sql
SET @sql = ''
SET @endTime = DATEADD(DAY,-1,@endTime)
END
SET @mi = @mi - 1 --月份减一
/*
------------------------------------------------------------
CREATE TABLE 201402 (MId INT PRIMARY KEY IDENTITY(1,1))
INSERT INTO 201402 VALUES SELECT * FROM 20140219
INSERT INTO 201402 VALUES SELECT * FROM 20140218
INSERT INTO 201402 VALUES SELECT * FROM 20140217
INSERT INTO 201402 VALUES SELECT * FROM 20140216
INSERT INTO 201402 VALUES SELECT * FROM 20140215
INSERT INTO 201402 VALUES SELECT * FROM 20140214
INSERT INTO 201402 VALUES SELECT * FROM 20140213
INSERT INTO 201402 VALUES SELECT * FROM 20140212
INSERT INTO 201402 VALUES SELECT * FROM 20140211
INSERT INTO 201402 VALUES SELECT * FROM 20140210
INSERT INTO 201402 VALUES SELECT * FROM 20140209
INSERT INTO 201402 VALUES SELECT * FROM 20140208
INSERT INTO 201402 VALUES SELECT * FROM 20140207
INSERT INTO 201402 VALUES SELECT * FROM 20140206
INSERT INTO 201402 VALUES SELECT * FROM 20140205
INSERT INTO 201402 VALUES SELECT * FROM 20140204
INSERT INTO 201402 VALUES SELECT * FROM 20140203
INSERT INTO 201402 VALUES SELECT * FROM 20140202
INSERT INTO 201402 VALUES SELECT * FROM 20140201
CREATE TABLE 201401 (MId INT PRIMARY KEY IDENTITY(1,1))
INSERT INTO 201401 VALUES SELECT * FROM 20140131
INSERT INTO 201401 VALUES SELECT * FROM 20140130
INSERT INTO 201401 VALUES SELECT * FROM 20140129
INSERT INTO 201401 VALUES SELECT * FROM 20140128
INSERT INTO 201401 VALUES SELECT * FROM 20140127
INSERT INTO 201401 VALUES SELECT * FROM 20140126
INSERT INTO 201401 VALUES SELECT * FROM 20140125
INSERT INTO 201401 VALUES SELECT * FROM 20140124
INSERT INTO 201401 VALUES SELECT * FROM 20140123
INSERT INTO 201401 VALUES SELECT * FROM 20140122
INSERT INTO 201401 VALUES SELECT * FROM 20140121
INSERT INTO 201401 VALUES SELECT * FROM 20140120
INSERT INTO 201401 VALUES SELECT * FROM 20140119
INSERT INTO 201401 VALUES SELECT * FROM 20140118
INSERT INTO 201401 VALUES SELECT * FROM 20140117
INSERT INTO 201401 VALUES SELECT * FROM 20140116
INSERT INTO 201401 VALUES SELECT * FROM 20140115
INSERT INTO 201401 VALUES SELECT * FROM 20140114
INSERT INTO 201401 VALUES SELECT * FROM 20140113
INSERT INTO 201401 VALUES SELECT * FROM 20140112
INSERT INTO 201401 VALUES SELECT * FROM 20140111
INSERT INTO 201401 VALUES SELECT * FROM 20140110
INSERT INTO 201401 VALUES SELECT * FROM 20140109
INSERT INTO 201401 VALUES SELECT * FROM 20140108
INSERT INTO 201401 VALUES SELECT * FROM 20140107
INSERT INTO 201401 VALUES SELECT * FROM 20140106
INSERT INTO 201401 VALUES SELECT * FROM 20140105
INSERT INTO 201401 VALUES SELECT * FROM 20140104
INSERT INTO 201401 VALUES SELECT * FROM 20140103
INSERT INTO 201401 VALUES SELECT * FROM 20140102
INSERT INTO 201401 VALUES SELECT * FROM 20140101
*/
‘贰’ 使用sql语句使查询到的两张表拼接为一张表
select * from 表a
union
select * from 表b
‘叁’ 如何用sql将2个表合并为一个表 如下图
这两个表之间有关系?你说结构一样,是什么一样?不清楚。
如果这两个表之间没有关系,现又要合并,说明这8个属性本就是一个实体的完整属性,又何必拆分,表的设计就有问题了。
‘肆’ sql把两个表合并成一个新表的语句应该怎么写
SQL SERVER:
select *
into 表3
from
(
select 字段列表1 from 表1
union all
select 字段列表2 from 表2
) a
说明:字段列表1与字段列表1要数目相同、类型兼容
其它数据库自己参考。
‘伍’ sql两个表数据合并到一个新表
SQL 数据库中的两个表的数据合并到一个新表中,首先需要create一个新的表,然后根据数据表结构insert两个表的数据到新表中即可完成两个表数据合并到一个新表。
‘陆’ sql sever将两个表合起来语法
select * from a,b 这会显示所有两个表的笛卡尔积。
一、外连接1.左连接 left join 或 left outer joinSQL语句:select * from student left join score on student.Num=score.Stu_id;2.右连接 right join 或 right outer joinSQL语句:select * from student right join score on student.Num=score.Stu_id;3.完全外连接 full join 或 full outer joinSQL语句:select * from student full join score on student.Num=score.Stu_id;通过上面这三种方法就可以把不同的表连接到一起,变成一张大表,之后的查询操作就简单一些了。而对于select * from student,score;则尽量不使用此语句,产生的结果过于繁琐。
‘柒’ 怎样用sql语句实现将两个没有关系的表拼接成一张表
1、创建测试表,
create table test_aaa( value varchar2(20));
create table test_bbb( value varchar2(20));
‘捌’ SQL 表如何两张表合并成一张 !!
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
SQL UNION 语法
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2
注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。
SQL UNION ALL 语法
SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2
另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。
‘玖’ sql 把两个表合成一个表
上面的数据没看明白唯一性
如果两个表拼接可以使用union
或者使用一个视图,把两个表关联起来
‘拾’ SQL如何合并两个表并生成一个新表
create tab3 as
select tab2.t2id t2id,tab1.tname tname from tab1,tab2 where tab1.tid=tab2.t1_id