1:SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
转至http://www.cnblogs.com/freshman0216/archive/2008/08/15/1268316.html
Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少。但我们在开发、测试过程中,经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 INSERT INTO SELECT 表复制语句了。
1.INSERT INTO SELECT语句
语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1
要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量。示例如下:
INSERT INTO SELECT语句复制表数据
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--> --1.创建测试表
create TABLE Table1
(
a varchar(10),
b varchar(10),
c varchar(10),
CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED
(
a ASC
)
) ON [PRIMARY]
create TABLE Table2
(
a varchar(10),
c varchar(10),
d int,
CONSTRAINT [PK_Table2] PRIMARY KEY CLUSTERED
(
a ASC
)
) ON [PRIMARY]
GO
--2.创建测试数据
Insert into Table1 values('赵','asds','90')
Insert into Table1 values('钱','asds','100')
Insert into Table1 values('孙','asds','80')
Insert into Table1 values('李','asds',null)
GO
select * from Table2
--3.INSERT INTO SELECT语句复制表数据
Insert into Table2(a, c, d) select a,c,5 from Table1
GO
--4.显示更新后的结果
select * from Table2
GO
--5.删除测试表
drop TABLE Table1
drop TABLE Table2
2.SELECT INTO FROM语句
语句形式为:SELECT vale1, value2 into Table2 from Table1
要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中。示例如下:
SELECT INTO FROM创建表并复制表数据
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--> --1.创建测试表
create TABLE Table1
(
a varchar(10),
b varchar(10),
c varchar(10),
CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED
(
a ASC
)
) ON [PRIMARY]
GO
--2.创建测试数据
Insert into Table1 values('赵','asds','90')
Insert into Table1 values('钱','asds','100')
Insert into Table1 values('孙','asds','80')
Insert into Table1 values('李','asds',null)
GO
--3.SELECT INTO FROM语句创建表Table2并复制数据
select a,c INTO Table2 from Table1
GO
--4.显示更新后的结果
select * from Table2
GO
--5.删除测试表
drop TABLE Table1
drop TABLE Table2
2:自己总结的sql去重
--author:陈超
--查询是否有template_id重复的模板(comframe里)
select template_id,count(template_id) from vm_template vt group by template_id having count(8)>1;
--查出所有重复的数据
SELECT ROWID,NCA.CLASS_NAME FROM NG_CFG_AUDIT NCA WHERE NCA.CLASS_NAME IN
(SELECT NCA2.CLASS_NAME FROM NG_CFG_AUDIT NCA2 GROUP BY NCA2.CLASS_NAME HAVING COUNT(*)>1);
--查询多余的数据的rowid最大的一条
SELECT MAX(NCA3.ROWID),NCA3.CLASS_NAME FROM NG_CFG_AUDIT NCA3 GROUP BY NCA3.CLASS_NAME HAVING COUNT(*)>1;
--查询多出来的数据
(
SELECT NCA.ROWID,NCA.CLASS_NAME FROM NG_CFG_AUDIT NCA WHERE NCA.CLASS_NAME IN
(SELECT NCA2.CLASS_NAME FROM NG_CFG_AUDIT NCA2 GROUP BY NCA2.CLASS_NAME HAVING COUNT(*)>1)
)
MINUS
(
SELECT MAX(NCA3.ROWID),NCA3.CLASS_NAME FROM NG_CFG_AUDIT NCA3 GROUP BY NCA3.CLASS_NAME HAVING COUNT(*)>1
);
--删除多余的数据(对于多的只保留一条)
DELETE FROM NG_CFG_AUDIT NCA4 WHERE NCA4.ROWID IN(
(
SELECT NCA.ROWID FROM NG_CFG_AUDIT NCA WHERE NCA.CLASS_NAME IN
(SELECT NCA2.CLASS_NAME FROM NG_CFG_AUDIT NCA2 GROUP BY NCA2.CLASS_NAME HAVING COUNT(*)>1)
)
MINUS
(
SELECT MAX(NCA3.ROWID) FROM NG_CFG_AUDIT NCA3 GROUP BY NCA3.CLASS_NAME HAVING COUNT(*)>1
)
);
SELECT ROWID,NCA.* FROM NG_CFG_AUDIT NCA WHERE NCA.CLASS_NAME='com.asiainfo.boss.channel.ng.channelinfo.service.impl.PopularizeCostDrawInfoSVImpl';
注:如果多个字段联合唯一去重,则可以用||将它们连接起来in操作
分享到:
相关推荐
4. 数据库备份与恢复:从备份表的常用SQL语句中可以看出,备份表操作涉及到数据的转移和保留。在实际操作中,这通常是通过执行特定的SQL脚本或使用数据库管理工具来完成的,以确保数据的完整性和可用性。 5. 条件...
1. 创建一个临时表,存储去重后的数据: ```sql CREATE TABLE temp_emp AS SELECT DISTINCT * FROM employee; ``` 2. 清空原始表: ```sql TRUNCATE TABLE employee; ``` 3. 将临时表中的数据重新插入到原始...
根据给定文件的信息,...以上就是从给定文件中提取的关键SQL知识点,涵盖了数据库管理、表管理、数据定义、数据操作以及一些高级查询技巧等各个方面。这些知识点对于任何希望掌握SQL语言基础的人来说都是非常重要的。
SQL Server 支持多种查询、备份、恢复等操作,并且具备强大的安全性和扩展性。 #### 二、SQL 基本操作指令 在 SQL Server 中,主要的操作指令可以分为四类:数据查询语言 (DQL)、数据操纵语言 (DML)、数据定义语言...
本篇文章将针对"实际工作中常用sql积累及总结"进行深入探讨,涵盖事务处理、游标、存储过程、行列转换、递归查询、数据库备份与还原、分布式查询、批量更新、合并记录以及动态SQL等多个关键知识点。 1. **事务处理*...
根据提供的标题、描述、标签以及...综上所述,“cmd创建用户及表数据去重”这一主题涵盖了数据库用户管理、数据导入以及数据清洗等多个方面。通过对这些知识点的深入理解,可以帮助我们更好地管理和维护数据库系统。
在Oracle数据库中,进行表内数据去重是一项常见的任务,特别是在处理大量数据时。面对一个包含一亿条记录,且每个记录只有一个字段`mobile`的`bao_mobile_temp`表,如何高效地去除重复数据,是本文要探讨的核心问题...
在数据库备份场景中,尤其是在大型系统中,经常存在大量的重复数据,如日志文件中的重复事务、用户表中的重复记录等。重复数据删除能够显著降低备份文件的大小,从而节省存储成本,同时加快备份和恢复的速度。 SQL ...
这个成功的SQL语句巧妙地避免了直接在删除过程中引用被删除的表,而是通过关联子查询来确定要删除的记录,从而实现了高效且准确的去重保留一条的功能。这种做法在处理大量重复数据时,效率显著高于使用代码遍历的...
根据提供的描述“oracle字段去重 以某一个字段去重”,可以理解为在某个表中基于特定字段进行去重处理。这里的关键在于如何有效地针对指定的字段进行去重操作。 #### 三、去重方法详解 ##### 3.1 使用DISTINCT...
根据提供的文件信息,我们可以归纳出一系列重要的SQL语句知识点,这些知识点主要涵盖了数据库管理语言(DDL)、数据操作语言(DML)以及数据控制语言(DCL)等方面的基础内容。接下来,我们将对这些知识点进行详细...
以下是一些关于如何在SQL中去重的关键知识点: 1. **DISTINCT关键字**:最简单的方法是使用`SELECT DISTINCT`语句来获取不重复的记录。例如: ```sql SELECT DISTINCT column1, column2, ... FROM table_name; ...
在IT行业中,SQL Server作为一款广泛使用的...以上内容涵盖了SQL Server中各种常用语句的语法与应用示例,通过这些语句,可以有效地管理数据库、表结构、数据查询与修改等,是每个数据库工作者必须熟练掌握的核心技能。
SQL Server 2000是由Microsoft开发的一款数据库管理系统,它提供了数据存储、查询、备份、恢复等多种功能,适合大型企业的数据处理需求。而Excel则是一款电子表格软件,常用于个人或小团队的数据分析和展示。 将...
SQL,全称Structured Query Language,是一种用于管理关系数据库的标准语言,包括了数据查询、数据操纵、数据定义和数据控制等功能。以下是对标题和描述中提到的经典SQL语句的详细解释和扩展: 1. **创建数据库**:...
在数据库管理中,有时我们需要处理重复的数据以保持数据的一致性和准确性。...同时,根据你的数据库类型(如MySQL、SQL Server、Oracle等)和数据量,可能需要调整或优化这些查询语句以获得最佳性能。
本文档主要涵盖了SQL的基础操作,包括数据库的创建、删除、备份,以及对表、列、索引、视图的管理和基本的查询操作。 1. 数据库操作: - `CREATE DATABASE` 语句用于创建新的数据库,例如 `CREATE DATABASE ...
以上就是SQL基本语法格式的大全,涵盖了数据库和表的操作、数据操作语言以及一些高级查询和连接操作。对于初学者来说,掌握这些基础语法是非常重要的。通过实践和练习,你可以逐渐熟悉并灵活运用这些SQL语句来处理...
3. **备份SQL Server**: - 创建备份设备: ```sql USE master; EXEC sp_addumpdevice 'disk', 'testBack', 'C:\mssql7backup\MyNwind_1.dat'; ``` - 开始备份: ```sql BACKUP DATABASE pubs TO testBack; ``...