gpt4 book ai didi

sql - Oracle中删除重复行的方法

转载 作者:行者123 更新时间:2023-12-05 02:22:09 26 4
gpt4 key购买 nike

我需要有关重复行的帮助。我已经使用以下方法从一个表中删除了重复的行

DELETE FROM names a
WHERE ROWID > (SELECT MIN(ROWID) FROM names b
WHERE b.name=a.name
AND b.age=a.age
);

它确实适用于那个特定的表格,但我对另一个表格做了同样的事情,每个医生都有重复的引用号,但唯一代码不同。

doc_name  ref_no  unique_code
------------------------------
abcd 1010 1111
abcd 1010 1112
cdef 1011 1113
cdef 1011 1114

我的结果应该是这样的:

doc_name ref_no unique_code
---------------------------
abcd 1010 1111
cdef 1011 1113

最佳答案

您可以使用 ROW_NUMBER() , 检测重复行并删除它们。

DELETE tblName
WHERE ROWID IN (
SELECT ROWID
FROM(
SELECT ROW_NUMBER() OVER (PARTITION BY doc_name, ref_no ORDER BY doc_name, ref_no) AS Rn
,doc_name
,ref_no
,unique_code
FROM tblName
)
WHERE Rn > 1
)

关于sql - Oracle中删除重复行的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30560984/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com