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
相关推荐
爱尔兰极光5 分钟前
数据库基本操作(下)
数据库·sql
kka杰15 分钟前
MYSQL-索引
数据库·mysql
Aze..28 分钟前
PVE安装 Ubuntu 服务器版
运维·服务器·数据库
他们叫我技术总监39 分钟前
ORA-14402: 更新分区关键字列将导致分区的更改,多种解决方案
oracle·ora-14402
Boilermaker199242 分钟前
[MySQL] 事务的隔离性与 MVCC
数据库·mysql
步步为营DotNet1 小时前
深度解析DbContext ChangeTracker:实体状态管理与性能优化
数据库·oracle·性能优化
南棱笑笑生1 小时前
20251205在ubuntu20.04.6下的打包/解压缩tar.bz2压缩包的方法
数据库·postgresql
java_logo1 小时前
PGADMIN4 Docker 容器化部署指南
运维·数据库·docker·postgresql·容器·数据库系统
a3722107741 小时前
HikariCP配置 高并发下连接泄漏避免
java·数据库·oracle
缺点内向1 小时前
如何在C#中添加Excel文档属性?
开发语言·数据库·c#·.net·excel