`
totoxian
  • 浏览: 1074364 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

抱SQL SERVER大腿之从巨大表中提炼非重复数据

阅读更多

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

两千多万条记录啊。

两千多万条记录算条毛?要是两千多万元人民币多好。

分享到:
评论

相关推荐

    sqlServer删除重复数据

    SQL Server 删除重复数据是数据库管理中的一项重要任务。重复数据可能是完全重复的记录,也可能是部分关键字段重复的记录。删除重复数据可以使用多种方法,包括使用 SELECT DISTINCT 语句、使用自动生成的标识符、...

    将sqlserver中的数据导出成为sql语句

    标题提到的“将sqlserver中的数据导出成为sql语句”是指将SQL Server数据库中的表结构和数据转换为一系列的INSERT INTO SQL语句,这样就可以通过执行这些语句在另一个数据库中重建相同的数据。这一过程对于开发、...

    sqlserver 循环临时表插入数据到另一张表

    sqlserver 循环临时表插入数据到另一张表 -- 声明变量 DECLARE @SupCode as varchar(100), @ProdCode as varchar(50), @PackLayer as varchar(50), @CodeStatus as varchar(50), @ProductId as varchar(50), @...

    sqlserver表数据插入到oracle表中的一种实现方式(表结构相同)

    表结构的创建比较简单,但是表的数据量太大,一时也想不到怎么把sqlserver表数据复制到oracle中,于是请教公司主管,用存储过程实现可以查询出所有数据的insert脚本,在oracle库中创建好表,直接把sqlserver中的...

    kepserver读取SQL Server数据库

    在设备创建过程中,你需要指定数据类型,例如数值、字符串或布尔值,这些数据类型应该与SQL Server中的列类型相对应。然后,在表中选择要读取的特定列,这些列将成为OPC标签,可以在OPC客户端应用程序中访问。完成...

    Excel数据导入到SQLServer数据库中

    在提供的“Excel数据导入SQLServer”压缩包中,可能包含了实现这一功能的源码示例,可以供开发者参考学习。通过深入理解这些知识点和实践操作,你可以有效地将Excel数据导入到SQL Server数据库,提高数据管理效率。

    labview写入数据到sql server2005

    在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类型数据 C#操作SQL Server中的Image类型数据 详细介绍请参考: ...

    查看SQLServer数据库每个表占用的空间大小.sql

    快捷方便,可查看sqlserver数据库每个表的使用情况,一次下载终身使用,此文件为sql语句格式,免费试用

    SQL Server表数据导出成Insert语句的工具

    在SQL Server数据库管理中,有时我们需要将表中的数据导出为Insert语句,这在数据迁移、备份或测试环境中非常常见。"SQL Server表数据导出成Insert语句的工具"是一个专门为此目的设计的应用程序,它能帮助数据库管理...

    SQL Server数据导入SQLite工具

    例如,SQL Server中的`datetime`在SQLite中可能需要转换为`datetimeoffset`或`text`。工具需要进行这种类型转换,以确保数据能够正确存储和检索。 4. **SQL语句转换**:SQL Server的T-SQL语法与SQLite的SQL语法有...

    kepserver过程数据写入sql数据库中.docx

    第五步骤是查看SQL数据库中的数据表的变量,注意dsn与configure dsn必须与SQL相一致,user name与password必须与SQL中创建的用户和密码相一致。 KepServer的数据写入SQL数据库的过程需要遵循严格的步骤,否则将无法...

    Excel从SQLServer获取数据

    如何通过Excel来获取SQLServer数据 方便对数据库中的某些数据取数!

    SqlServer2005 打开 SqlServer2008 mdf文件

    1. 右击 Sql Server 2005 中的 jmmaj 数据库,选择“任务”-&gt;“导入数据”,然后选择数据源和目标数据,复制一个或多个表或视图数据。 2. 在选择源表和源视图的时候,点击下面的“编辑影射”按钮,然后把“启用标识...

    Sqlserver表数据导出成Insert语句的工具

    此工具可以将SQL Server表数据导出成Insert语句。SQL Server的导入导出功能可以导出创建数据库各对象的脚本,却不提供导出目标表的现有数据为Insert语句的功能,此工具可以将SQL Server表数据导出成Insert语句。

    sql server2019安装包

    1. **Big Data Clusters**:SQL Server 2019引入了大数据集群的概念,允许用户在同一个环境中整合SQL Server、Hadoop分布式文件系统(HDFS)和Apache Spark,实现了对结构化和非结构化数据的统一管理。 2. **In-...

    sqlserver自动生成sql语句工具sqlserver转oracle

    例如,通过这样的工具,我们可以导出SQL Server中的表结构、索引、存储过程、触发器等对象的创建语句。 描述中提到的"sqlserver转oracle"则是指将SQL Server数据库的内容迁移到Oracle数据库的过程。这个过程涉及到...

    C#实现批量插入sqlserver数据

    `SqlBulkCopy`是.NET框架提供的一种高效批量插入工具,它允许快速地将大量数据从一个数据源复制到SQL Server表。使用示例: ```csharp using (SqlBulkCopy bulkCopy = new SqlBulkCopy(conn)) { bulkCopy....

    Oracle数据库导入到SqlServer步骤(图文篇)

    Oracle 数据库到 SqlServer 数据迁移步骤详解 Oracle 数据库到 SqlServer 的数据迁移是一项复杂的任务,需要经过多个步骤来完成。本文将详细介绍如何将 Oracle 数据库导入到 SqlServer 中。 Step 1-6: 数据源设置...

    sql-server中复制数据库某一个表到另一个数据库中

    在SQL Server中,复制一个表涉及到的基本概念包括: - **源数据库**:原始数据所在的数据库。 - **目标数据库**:接收复制数据的新数据库。 - **表结构**:包括列名、数据类型、约束等。 - **表数据**:存储在表中的...

Global site tag (gtag.js) - Google Analytics