假设有表(dual)如下:Name1 Name2Jason Melissa
Jason Shasha
Jason Sherman
Melissa Jason
Melissa Shasha
Shasha Jason
Shasha Melissa
Shasha Sherman
Sherman Jason
Sherman ShashaJason Melissa和Melissa Jason被认为是重复项,所以删除重复项后的应该为:Name1 Name2Jason Melissa
Jason Shasha
Jason Sherman
Melissa Shasha
Shasha Shermandistinct在这里没用,该怎么处理呢?请指教~
Jason Shasha
Jason Sherman
Melissa Jason
Melissa Shasha
Shasha Jason
Shasha Melissa
Shasha Sherman
Sherman Jason
Sherman ShashaJason Melissa和Melissa Jason被认为是重复项,所以删除重复项后的应该为:Name1 Name2Jason Melissa
Jason Shasha
Jason Sherman
Melissa Shasha
Shasha Shermandistinct在这里没用,该怎么处理呢?请指教~
解决方案 »
- 请教关于log_archive_min_succeed_dest参数的问题。
- 我在linux下装oracle 一直不能成功阿
- 请大家看看这个问题:怎么在SCOTT下,建不成表呢?出现以下错误!
- oracle连接是的一个错误,帮忙看看
- 数据库把时间格式存成vchar类型,该怎么比较时间呢
- Oracle 如何定时备份,windows2003 下的??????????????????
- 关于周报表的问题?求教!
- 视图创建是可以用group by语句吗?我建立的视图涉及较多的计算(含有sum),使得我的查询速度效率很低,我应该怎么办?视图可以建立索引
- 系统变量的取得
- 请问能把RAC的机器时间往前调吗
- 求救:m_pConnection->Execute((_bstr_t)sql,&vtMissing,adCmdText);错在哪里
- 关于Oracle的配置文件
where rowid not in (select max(rowid) from table_name
group by name1,name2)
delete from table_name
where rowid not in (select rowid from (select row_number()over(partition by name1,name2 order by name1,name2) rn from table_name) where rn=1)
上面的方法不能解决Jason Melissa和Melissa Jason被认为是重复项的问题只能删除完全相同的项
where rowid not in
(
select max(rowid)
from dual
group by
case when
name1=name2 then 1
end
)
NAME1 NAME2
------- -------
Jason Melissa
Jason Shasha
Jason Sherman
Melissa Jason
Melissa Shasha
Shasha Jason
Shasha Melissa
Shasha Sherman
Sherman Jason
Sherman Shasha
sss fff
11 rows selected
SQL> select distinct least(name1,name2)name1,greatest(name1,name2)name2 from test_1;
NAME1 NAME2
------- -------
Jason Shasha
Shasha Sherman
Jason Sherman
Melissa Shasha
Jason Melissa
fff sss
6 rows selected
SQL>