抱SQL SERVER大腿之从巨大表中提炼非重复数据
左直拳
有一个表,2千多万条记录,其中有很大部分只有一两个字段的内容不同,可视为重复记录。现在要从这个表里提炼出不重复的部分,转移到另一个新表里。同时这个转移不是简单的复制,因为两表的结构不同,新表中的新字段需要赋值。
凭我那两下子,是这么搞的:
1、不能用一条SQL语句搞定(也许有,我写不出来)。要用循环;
2、使用临时表;
3、删除临时表中的重复记录,然后转移到新表
过程如下:
--创建一个与新表一模一样的临时表
CREATE TABLE #TEMP ……
--循环,将符合条件的记录(未过滤重复)插进临时表
--这里对这个巨大表是分批处理的,每个循环最多处理10万条
WHILE( @i < @j )
BEGIN
SET @k1 = @i * 100000
SET @k2 = (@i + 1) * 100000
INSERT INTO #TEMP(……)
SELECT
……
FROM a, b
WHERE ……
AND a.Id BETWEEN @k1 AND @k2
GROUP BY ……
--赋新值
UPDATE #TEMP SET ……
FROM #TEMP,a
WHERE ……
AND a.Id BETWEEN @k1 AND @k2
SET @i = @i + 1
END
--删除重复行
DELETE FROM #TEMP WHERE
EXISTS(SELECT 1 FROM #TEMP a WHERE a.Id<#TEMP.Id AND a. KeyId=#TEMP.KeyId)
--最后将数据从临时表复制到新表
INSERT INTO ……
SELECT ……
FROM #TEMP
两千多万条记录啊。
两千多万条记录算条毛?要是两千多万元人民币多好。
分享到:
相关推荐
SQL Server 删除重复数据是数据库管理中的一项重要任务。重复数据可能是完全重复的记录,也可能是部分关键字段重复的记录。删除重复数据可以使用多种方法,包括使用 SELECT DISTINCT 语句、使用自动生成的标识符、...
标题提到的“将sqlserver中的数据导出成为sql语句”是指将SQL Server数据库中的表结构和数据转换为一系列的INSERT INTO SQL语句,这样就可以通过执行这些语句在另一个数据库中重建相同的数据。这一过程对于开发、...
sqlserver 循环临时表插入数据到另一张表 -- 声明变量 DECLARE @SupCode as varchar(100), @ProdCode as varchar(50), @PackLayer as varchar(50), @CodeStatus as varchar(50), @ProductId as varchar(50), @...
表结构的创建比较简单,但是表的数据量太大,一时也想不到怎么把sqlserver表数据复制到oracle中,于是请教公司主管,用存储过程实现可以查询出所有数据的insert脚本,在oracle库中创建好表,直接把sqlserver中的...
在设备创建过程中,你需要指定数据类型,例如数值、字符串或布尔值,这些数据类型应该与SQL Server中的列类型相对应。然后,在表中选择要读取的特定列,这些列将成为OPC标签,可以在OPC客户端应用程序中访问。完成...
在提供的“Excel数据导入SQLServer”压缩包中,可能包含了实现这一功能的源码示例,可以供开发者参考学习。通过深入理解这些知识点和实践操作,你可以有效地将Excel数据导入到SQL Server数据库,提高数据管理效率。
在Windows操作系统中,可以通过ODBC数据源管理器来配置新的数据源,选择适用于SQL Server的ODBC驱动,例如“SQL Server Native Client 10.0”(对应SQL Server 2008及更高版本),或者“SQL Server”(支持SQL ...
C#操作SQL Server中的Image类型数据 C#操作SQL Server中的Image类型数据 C#操作SQL Server中的Image类型数据 C#操作SQL Server中的Image类型数据 详细介绍请参考: ...
快捷方便,可查看sqlserver数据库每个表的使用情况,一次下载终身使用,此文件为sql语句格式,免费试用
在SQL Server数据库管理中,有时我们需要将表中的数据导出为Insert语句,这在数据迁移、备份或测试环境中非常常见。"SQL Server表数据导出成Insert语句的工具"是一个专门为此目的设计的应用程序,它能帮助数据库管理...
例如,SQL Server中的`datetime`在SQLite中可能需要转换为`datetimeoffset`或`text`。工具需要进行这种类型转换,以确保数据能够正确存储和检索。 4. **SQL语句转换**:SQL Server的T-SQL语法与SQLite的SQL语法有...
第五步骤是查看SQL数据库中的数据表的变量,注意dsn与configure dsn必须与SQL相一致,user name与password必须与SQL中创建的用户和密码相一致。 KepServer的数据写入SQL数据库的过程需要遵循严格的步骤,否则将无法...
如何通过Excel来获取SQLServer数据 方便对数据库中的某些数据取数!
1. 右击 Sql Server 2005 中的 jmmaj 数据库,选择“任务”->“导入数据”,然后选择数据源和目标数据,复制一个或多个表或视图数据。 2. 在选择源表和源视图的时候,点击下面的“编辑影射”按钮,然后把“启用标识...
此工具可以将SQL Server表数据导出成Insert语句。SQL Server的导入导出功能可以导出创建数据库各对象的脚本,却不提供导出目标表的现有数据为Insert语句的功能,此工具可以将SQL Server表数据导出成Insert语句。
1. **Big Data Clusters**:SQL Server 2019引入了大数据集群的概念,允许用户在同一个环境中整合SQL Server、Hadoop分布式文件系统(HDFS)和Apache Spark,实现了对结构化和非结构化数据的统一管理。 2. **In-...
例如,通过这样的工具,我们可以导出SQL Server中的表结构、索引、存储过程、触发器等对象的创建语句。 描述中提到的"sqlserver转oracle"则是指将SQL Server数据库的内容迁移到Oracle数据库的过程。这个过程涉及到...
`SqlBulkCopy`是.NET框架提供的一种高效批量插入工具,它允许快速地将大量数据从一个数据源复制到SQL Server表。使用示例: ```csharp using (SqlBulkCopy bulkCopy = new SqlBulkCopy(conn)) { bulkCopy....
Oracle 数据库到 SqlServer 数据迁移步骤详解 Oracle 数据库到 SqlServer 的数据迁移是一项复杂的任务,需要经过多个步骤来完成。本文将详细介绍如何将 Oracle 数据库导入到 SqlServer 中。 Step 1-6: 数据源设置...
在SQL Server中,复制一个表涉及到的基本概念包括: - **源数据库**:原始数据所在的数据库。 - **目标数据库**:接收复制数据的新数据库。 - **表结构**:包括列名、数据类型、约束等。 - **表数据**:存储在表中的...