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
相关推荐
Sgf22711 小时前
第7章 文件操作
服务器·开发语言·数据库·python
闻哥11 小时前
深入理解 InnoDB 的 MVCC:原理、Read View 与可见性判断
java·开发语言·jvm·数据库·b树·mysql·面试
爱敲代码的菜菜11 小时前
【Redis】Redis基本操作
java·数据库·redis·缓存·hash·zset
liulilittle11 小时前
SQLite3 C++ usage demo
数据库·c++·sqlite
路由侠内网穿透11 小时前
本地部署开源网络书签与内容管理工具 Karakeep 并实现外部访问
运维·服务器·网络·数据库·开源
一只会跑会跳会发疯的猴子11 小时前
php操作mysql数据库增删改查
数据库·mysql·php
jnrjian11 小时前
expdp 指定的表分区 其实指定where 条件也可以
oracle
雾喔11 小时前
redis简单命令
数据库·redis·缓存
IT邦德11 小时前
Oracle 26ai 图数据库
数据库·oracle
代码探秘者11 小时前
【大模型应用】一篇弄懂Skill
数据结构·数据库·python·算法·spring