oracle剔除表中的重复数据
时间: 2024-10-15 11:14:16 浏览: 18
在Oracle数据库中,如果你想剔除表中的重复数据并保留唯一记录,可以使用`DISTINCT`关键字结合`INSERT INTO ... SELECT`语句,或者使用`UNION ALL`操作符,再加上`GROUP BY`子句来创建一个新的、无重复的数据集。以下是两种常见的方法:
1. 使用`INSERT INTO ... SELECT DISTINCT`:
```sql
INSERT INTO your_new_table (column1, column2, ...)
SELECT DISTINCT column1, column2, ...
FROM your_original_table;
```
这里需要替换`your_new_table`为你想要存储唯一记录的新表名,以及`column1, column2, ...`为你要保证唯一的列。
2. 使用`UNION ALL`和`GROUP BY`:
```sql
CREATE TABLE new_table AS
SELECT column1, column2, ...
FROM (
SELECT column1, column2, ...
FROM original_table
UNION ALL
SELECT column1, column2, ...
FROM original_table
WHERE ROWNUM <= (SELECT COUNT(*) FROM original_table GROUP BY column1, column2, ...)
);
```
这个查询首先合并原始表的所有行,然后通过`GROUP BY`和`ROWNUM`限制结果集只包含每个组的第一个(即唯一)行。
阅读全文