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
相关推荐
e***28292 分钟前
mybatisPlus打印sql配置
数据库·sql
+VX:Fegn08955 分钟前
计算机毕业设计|基于springboot + vue二手交易管理系统(源码+数据库+文档)
数据库·vue.js·spring boot
西游音月5 分钟前
(11)功能实现:Qt实战项目之新建db文件
数据库
V***u4538 分钟前
sql实战解析-sum()over(partition by xx order by xx)
数据库·sql
范纹杉想快点毕业9 分钟前
《STM32深度100问:AI助教工程师的实战问答录》从入门到精通适用入门嵌入式软件初级工程师,筑牢基础,技术积累
arm开发·数据库·驱动开发·mongodb·fpga开发
修己xj10 分钟前
使用Docker Compose轻松部署达梦数据库
数据库
合方圆~小文12 分钟前
智能变焦球机:全方位监控升级新标杆
数据库·人工智能·前端框架
二宝15213 分钟前
黑马商城day10-Redis面试篇
数据库·redis·面试
xiegwei16 分钟前
spring security oauth2 集成异常处理
数据库·spring·spring security
siriuuus21 分钟前
带你了解 Redis —— 基础知识总结
数据库·redis·缓存