Oracle中的联合主键查询问题
2007-01-22 12:01:20 来源:WEB开发网核心提示:最近要进行导数的工作,从好几张表中导入到一张表,Oracle中的联合主键查询问题,其中数据可能重复,所以在导入之前要进行数据的比对,所以要赋一个空字符串过去,select * from t1 wherenvl(col1,'')|| nvl(col2,'')|| col3 not in (
最近要进行导数的工作,从好几张表中导入到一张表,其中数据可能重复,所以在导入之前要进行数据的比对。
方法一:我用group by having count(*)>1将重复的数据提取出来,然后进行人工比对,事实证明,有够笨的!
方法二:请教了一位资深人员,提供了一个更好的方法。就是将三个字段连接起来作为主键,进行数据是否重复的判断。这里值得注意的是某列的值可能为空,所以要赋一个空字符串过去。
select * from t1 where nvl(col1,'')|| nvl(col2,'')|
| col3 not in (select col1||col2||col3 from t2)
然后将不重复的值,插入t2就可以了。
- ››oracle 恢复误删除的表和误更新的表
- ››Oracle分页查询排序数据重复问题
- ››Oracle创建dblink报错:ORA-01017、ORA-02063解决
- ››Oracle 提高SQL执行效率的方法
- ››Oracle 动态查询,EXECUTE IMMEDIATE select into...
- ››Oracle 11g必须开启的服务及服务详细介绍
- ››oracle性能34条优化技巧
- ››oracle数据库生成随机数的函数
- ››Oracle 数据库表空间容量调整脚本
- ››oracle单库彻底删除干净的方法
- ››Oracle创建表空间、创建用户以及授权、查看权限
- ››oracle 中 UPDATE nowait 的使用方法
更多精彩
赞助商链接