oracle查询出表中某几个字段值不唯一的数据

假设有一张学生表,建表语句如下:

复制代码
--学生 student表
create table student(
sno varchar2(10) primary key,
sname varchar2(20),
sage number(2),
ssex varchar2(5),
birthday date
);

现计划创建唯一索引(sno,sname),由于数据录入失误导致这两列数据有重复数据,进而导致唯一索引创建失败。

因此我们需要先查询出表中这些捣乱的数据,并进行去重处理。

可使用如下语句查询重复数据:

复制代码
select T.*, T.ROWID
  from student  T
 where exists (select 1
          from student
         where sno = T.sno
           and sname = T.sname
           and ROWID != T.ROWID)

补充:

如果只是查询某一列的重复值(如:sno),语句更加简单,可以如下:

复制代码
select    t. *    from  student t , student tt  where  t.rowid != tt.rowid  and  t.sno = tt.sno
相关推荐
就是ping不通的蛋黄派19 分钟前
MySQL数据库 管理与维护
数据库·mysql
初听于你35 分钟前
SQL常用语句解析:从查询到操作
数据库·sql
weixin_446260851 小时前
Milvus:高效能的云原生向量数据库
数据库·云原生·milvus
q***2511 小时前
Spring Boot 中使用 @Transactional 注解配置事务管理
数据库·spring boot·sql
z***3352 小时前
SQL Server 数据库管理工具的安装以及使用
数据库
e***0968 小时前
Sql Server数据库远程连接访问配置
数据库
2501_924064119 小时前
2025数据库性能测试工具:Utest、JMeter、HammerDB 等主流方案推荐
数据库·测试工具·jmeter·数据库性能测试·数据库负载测试·数据库压测工具·jmeter 压力测试
movie__movie9 小时前
秒杀库存扣减可以用redis原子自增么
数据库·redis·缓存
找不到、了10 小时前
MySQL 索引下推(ICP)的实战,彻底提升查询性能
数据库·mysql
b***676410 小时前
Springboot3 Mybatis-plus 3.5.9
数据库·oracle·mybatis