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
相关推荐
无心水14 分钟前
【分布式利器:RocketMQ】2、RocketMQ消息重复?3种幂等方案,彻底解决重复消费(附代码实操)
网络·数据库·rocketmq·java面试·消息幂等·重复消费·分布式利器
q***98521 小时前
基于人脸识别和 MySQL 的考勤管理系统实现
数据库·mysql
l1t1 小时前
用SQL求解advent of code 2024年23题
数据库·sql·算法
办公解码器2 小时前
Excel工作表打开一次后自动销毁文件,回收站中都找不到
数据库·excel
DO_Community2 小时前
基于AI Agent模板:快速生成 SQL 测试数据
人工智能·python·sql·ai·llm·ai编程
爬山算法3 小时前
Redis(127)Redis的内部数据结构是什么?
数据结构·数据库·redis
应用市场3 小时前
Qt QTreeView深度解析:从原理到实战应用
开发语言·数据库·qt
q***96583 小时前
Spring Data JDBC 详解
java·数据库·spring
Hello,C++!4 小时前
linux下libcurl的https简单例子
linux·数据库·https
合方圆~小文4 小时前
高性能20倍变焦球机转动功能监控设备
数据结构·数据库·数码相机·模块测试