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
相关推荐
数字护盾(和中)3 分钟前
BAS+ATT&CK:企业主动防御的黄金组合
服务器·网络·数据库
micro_xx9 分钟前
Matlab 有限元分析三维悬臂梁变形
前端·数据库·matlab
TTc_10 分钟前
oracle中的union和union all有什么区别?
数据库·oracle
cowboy25813 分钟前
mysql5.7及以下版本查询所有后代值(包括本身)
数据库·sql
web3.088899913 分钟前
获得某红书笔记评论说明-item_review
服务器·前端·数据库
风流 少年42 分钟前
mysql mcp
数据库·mysql·adb
知我Deja_Vu1 小时前
redisCommonHelper.generateCode(“GROUP“),Redis 生成码方法
数据库·redis·缓存
寄存器漫游者1 小时前
Linux 线程间通信
数据库·算法
努力的lpp1 小时前
SQLMap CTF 常用命令全集
数据库·web安全·网络安全·sql注入
IvorySQL1 小时前
揭开 PostgreSQL 读取效率问题的真相
数据库·postgresql·开源