Chinaunix首页 | 论坛 | 博客
  • 博客访问: 92186926
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-04-11 21:14:43

   来源:cnblogs    作者:xiazhaoxia

最近要进行导数的工作,从好几张表中导入到一张表,其中数据可能重复,所以在导入之前要进行数据的比对。

方法一:我用group by having count(*)>1将重复的数据提取出来,然后进行人工比对,事实证明,有够笨的!

方法二:请教了一位资深人员,提供了一个更好的方法。就是将三个字段连接起来作为主键,进行数据是否重复的判断。这里值得注意的是某列的值可能为空,所以要赋一个空字符串过去。

select * from t1 where  nvl(col1,'')|| nvl(col2,'')|
| col3 not in (select col1||col2||col3  from t2)

然后将不重复的值,插入t2就可以了。

阅读(260) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~