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
相关推荐
汽车仪器仪表相关领域2 分钟前
HORIBA MEXA-584L 全功能汽车排放废气分析仪:便携精准排放检测 + 多参数同步测量 + 国六 / 欧 7 合规适配,汽车检测与调校的黄金标准
服务器·数据库·人工智能·功能测试·汽车·压力测试·可用性测试
qq_3660862212 分钟前
SQL 中 OR 与 UNION ALL选择指南
数据库·sql
正在走向自律19 分钟前
时序数据库技术内幕:从大数据存储模型看工业级时序数据库的设计与落地
大数据·数据库·时序数据库·工业物联网存储·tsfile 存储引擎·大数据时序技术·物联网数据治理
zshs00021 分钟前
从 Raft 到 MySQL:我是怎么推导出半同步复制原理的
数据库·分布式·mysql
环流_22 分钟前
redis中list应用场景
数据库·redis·list
东风破13724 分钟前
DM8达梦分布式计算数据库集群DPC安装部署学习记录
数据库·学习
難釋懷27 分钟前
Redis网络模型-基于epoll的服务器端流程
网络·数据库·redis
这个DBA有点耶31 分钟前
MySQL深分页优化:从LIMIT 1000000,10到毫秒级响应的三种写法
数据库·程序人生·mysql·性能优化·学习方法·dba·改行学it
通往曙光的路上1 小时前
mysql3
数据库
阿坤带你走近大数据1 小时前
什么是 REDO LOG,它在 Oracle 数据库中的作用是什么?
数据库·oracle