删除 Oracle 表中的重复行:实用方法
在 Oracle 表填充期间,可能会无意中出现重复行,从而阻止创建主键。 本文详细介绍了一种有效删除这些重复项同时保留单个唯一行的方法。
解决方案:利用rowid
伪列
Oracle 的 rowid
伪列为每一行提供唯一的标识符。我们利用它来识别和删除冗余条目。
以下 SQL 语句使用 rowid
来实现此目的:
<code class="language-sql">DELETE FROM your_table WHERE rowid NOT IN (SELECT MIN(rowid) FROM your_table GROUP BY column1, column2, column3);</code>
此查询删除 rowid
与每组重复项中的最小 rowid
不对应的行。 GROUP BY
子句定义基于指定列(column1、column2、column3)的分组。 这些列值的每个唯一组合仅保留一行。
为了精确删除重复项,请考虑在 GROUP BY
子句中包含所有列。 调整列名称以匹配您的特定表结构。
这种方法确保只保留唯一的记录,为主键创建和其他数据库操作铺平道路。
以上是如何从 Oracle 表中删除重复行,同时保留唯一行?的详细内容。更多信息请关注PHP中文网其他相关文章!