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
相关推荐
KIN_DIN42 分钟前
SQL 查询最新的一条记录
数据库·sql
m0_706653231 小时前
Python生成器(Generator)与Yield关键字:惰性求值之美
jvm·数据库·python
wangmengxxw1 小时前
SpringAI-mysql
java·数据库·人工智能·mysql·springai
Coder_Boy_1 小时前
基于SpringAI的在线考试系统-数据库设计核心业务方案
java·数据库·spring boot·ddd·tdd
机器视觉知识推荐、就业指导2 小时前
Qt 元对象系统:机制、组成与典型用法
数据库·qt
qq_423233902 小时前
实战:用Python开发一个简单的区块链
jvm·数据库·python
信创天地2 小时前
国产化数据库深度运维:性能调优与故障排查实战指南
运维·数据库·安全·elk·自动化·rabbitmq
eWidget3 小时前
Shell输入输出(一):echo/printf输出,格式控制与颜色设置
运维·数据库·运维开发
a程序小傲3 小时前
得物Java面试被问:流批一体架构的实现和状态管理
java·开发语言·数据库·redis·缓存·面试·架构
Jess073 小时前
MySQL操作库 —— 库的操作
数据库·mysql