比如
XM ,XB ,ZJHM
张三 男 112233
张三 男 112244
李四 男 112233需要写SQL把重复的删除,比如筛选完是
张三 男 112233
张三 男 112244
不用管 是张三还是李四那条,只要去掉一个或者多个重复的即可
用distinct 只能是所有字段都匹配才行,还有什么好办法呢?
XM ,XB ,ZJHM
张三 男 112233
张三 男 112244
李四 男 112233需要写SQL把重复的删除,比如筛选完是
张三 男 112233
张三 男 112244
不用管 是张三还是李四那条,只要去掉一个或者多个重复的即可
用distinct 只能是所有字段都匹配才行,还有什么好办法呢?
delete t where t.rowid not in (select min(rowid) from t group by XM ,XB ,ZJHM)
WITH test AS
(SELECT'张三' xm ,'男' xb, '112233' ZJHM FROM dual UNION ALL
SELECT '张三' , '男' , '112244' FROM dual UNION ALL
SELECT '李四' , '男' , '112233' FROM dual )
SELECT * FROM test t WHERE ROWNUM=(SELECT MAX(ROWNUM) FROM test k WHERE k.zjhm=t.zjhm)
from (select t.*, row_number() over(partition by zjhm order by rownum) rn
from t)
where rn = 1