一个表很多字段(40多个),记录不到10,000条,其中有很多字段存在输入错误,现在需要按照其中一列(准备定义其为主键)整理这些数据,我已经使用distinct和分组找出了所有存在错误的记录(存在重复主键的必然是问题数据),但发现如果是一条记录一条记录去比对错误的地方,实在是要看花眼。
其实也就是按一列分组后,比较剩余列数据不同的地方
举例说明:查到下面的记录,ID是一样的12345,但其后的内容不同,错误之处在第二列的年份输入错了
.....
12345 2004-5-1 10356 718171 100496 SHULING YANG HE SHUZHI.....
12345    2005-5-1 10356 718171 100496 SHULING YANG HE SHUZHI.....
.....
期望显示为这个样子:12345 2004-5-1 NULL NULL NULL NULLL NULLL.....
12345 2005-5-1 NULL NULL NULL NULLL NULLL.....
....
我期望相同数据显示为空,仅显示不同数据,怎样实现?

解决方案 »

  1.   

    例下面的语句可以显示出同一ID的哪个字段不同,为1的为值不同字段,当然可以将不同值输出。
    SQL> select * from test2;        ID NAME                 INDATE
    ---------- -------------------- ----------
             1 name                 17-5月 -05
             1 name                 18-5月 -05
             2 name1                18-5月 -05
             2 name2                18-5月 -05SQL> select id,case when max(name) = min(name) then 0 else 1 end case,case when
    max(trunc(indate)) = min(trunc(indate)) then 0 else 1 end case from test2 group
    by id;        ID       CASE       CASE
    ---------- ---------- ----------
             1          0          1
             2          1          0
      

  2.   

    感谢“skystar99047(天星)”的帮助.
    你的方法很棒,学习!