首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从Oracle中删除表中的重复行

从Oracle中删除表中的重复行,可以使用以下SQL语句:

代码语言:txt
复制
DELETE FROM table_name
WHERE ROWID > (
  SELECT MIN(ROWID)
  FROM table_name
  GROUP BY column1, column2, ..., columnN
);

其中,table_name是要删除重复行的表名,column1, column2, ..., columnN是要比较的列名。

这个SQL语句会删除表中重复的行,只保留一行。它使用了GROUP BY子句来将表中的行按照指定的列进行分组,然后使用MIN(ROWID)函数来获取每个分组中的最小ROWID,最后删除ROWID大于最小ROWID的行。

需要注意的是,这个SQL语句只能删除表中的重复行,而不能删除重复列。如果需要删除重复列,可以使用以下SQL语句:

代码语言:txt
复制
SELECT DISTINCT column1, column2, ..., columnN
INTO new_table_name
FROM table_name;

DROP TABLE table_name;

ALTER TABLE new_table_name RENAME TO table_name;

其中,table_name是要删除重复列的表名,new_table_name是临时表名,column1, column2, ..., columnN是要保留的列名。

这个SQL语句会将表中的重复列删除,并将结果保存到一个新的表中,然后删除原表,并将新表重命名为原表名。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券