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
相关推荐
皙然3 分钟前
Redis核心理论:数据删除与淘汰策略详解(从原理到实战)
数据库·redis·缓存
星星也在雾里10 分钟前
PostgreSQL完整架构解析 + Linux系统下常用命令手册
数据库·postgresql
Miki Makimura11 分钟前
Redis基础指令学习
数据库·redis·学习
Yvonne爱编码27 分钟前
数据库---Day3 数据类型
数据库
羑悻的小杀马特29 分钟前
30 分钟零基础搭建 Home Assistant,解锁全屋智能新境界
数据库·人工智能
皙然37 分钟前
深入理解 MySQL 事务:从基础到实战,一篇吃透
数据库·mysql
我科绝伦(Huanhuan Zhou)38 分钟前
MySQL数据库备份管理系统新增备份任务巡检功能
运维·数据库·mysql
吠品43 分钟前
Docker Desktop部署Weaviate向量数据库:从配置到生产环境全流程
数据库·oracle·eureka
倔强的石头1061 小时前
【Linux指南】基础IO系列(三):Linux 系统 IO 接口 —— 深入内核的文件操作
linux·数据库
拾起零碎1 小时前
U8/领料申请单SQL server触发器,如果自定义项13有值,把数量修改成件数乘以自定义项13,如果恰好件数等于现存量,则数量同步出空
数据库