抱SQL SERVER大腿之从巨大表中提炼非重复数据
来源:互联网 发布:水杉建模软件下载 编辑:程序博客网 时间:2024/04/28 23:43
抱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大腿之从巨大表中提炼非重复数据
- 抱SQL SERVER大腿之我爱用视图
- sql server 得到表中重复数据及删除
- SQL server表中查询重复的数据
- SQL Server中删除重复数据
- Biztalk 实例之 从SQL Server中获取数据
- Sql Server 删除表中的重复数据
- 多种方法从SQL Server中去除重复记录
- sql server 去重复数据
- SQL Server查询重复数据
- SQL Server中删除重复数据的几个方法
- SQL Server中删除重复数据的几个方法
- SQL Server中删除重复数据的几个方法
- SQL Server中删除重复数据的几个方法
- SQL Server中删除重复数据的几个方法
- SQL Server中删除重复数据的几个方法
- SQL Server中删除重复数据的几个方法
- SQL Server中删除重复数据的几个方法
- apache2 配置
- [NET]Asp.net日期字符串格式化显示--DateTime.ToString()用法详解
- ARM与Cygyin
- window.open()详解
- 如何用PHP中的date()函数取得当前的确切时间
- 抱SQL SERVER大腿之从巨大表中提炼非重复数据
- 递归
- 将页面数据导出到excel文件
- 广东话揭后语大全
- my gor
- 读书社区写书评好戏连台,写书评得各项大奖。
- js导出数据到excel
- 做不到知足常乐
- Delphi实现Hash表