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
相关推荐
廋到被风吹走6 分钟前
【数据库】【MySQL】分区表深度解析:架构设计与大数据归档实践
android·数据库·mysql
馨谙10 分钟前
面试题----用户,组,su,su-,sudo,sudo-,nologin shell
java·前端·数据库
技术净胜20 分钟前
Sharding-JDBC实现完整的分库分表步骤
数据库
哈哈老师啊24 分钟前
Springboot企业办公信息化管理系统6z1v1(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
坠金28 分钟前
mysql中in和exist区别
数据库·mysql
永远是我的最爱38 分钟前
基于ASP.NET的图书管理系统的设计与实现
前端·后端·sql·visual studio
l1t43 分钟前
duckdb数据库CROSS JOIN LATERAL 中使用 EXISTS子查询的一个bug
数据库·bug
wregjru1 小时前
【C++】2.10智能指针详解
数据库·redis·mysql
2401_858286111 小时前
从Redis 8.4.0源码看快速排序(1) 宏函数min和swapcode
c语言·数据库·redis·缓存·快速排序·宏函数
茁壮成长的露露1 小时前
MongoDB单机安装
数据库·mongodb