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
相关推荐
德育处主任Pro几秒前
『n8n』不用写SQL,了解一下内置的Datatable
数据库·sql
阿乐艾官5 分钟前
【日志及存储】
大数据·数据库
踢足球092914 分钟前
寒假打卡:2026-2-12
数据库
thginWalker15 分钟前
Redis的常用命令
数据库·redis·缓存
NineData18 分钟前
NineData 社区版 V4.9.0 发布!支持应用切换能力以降低迁移风险,慢查询新增外部采集来源
数据库·sql·ninedata·社区版·v4.9.0·sql开发工具·navicat平替
TongSearch34 分钟前
Tongsearch分片的分配、迁移与生命周期管理
java·服务器·数据库·elasticsearch·tongsearch
跨境小技1 小时前
2026 Shopee数据抓取逐步教程:技术难点、解决思路与实战方法
前端·数据库·网络爬虫
一个天蝎座 白勺 程序猿1 小时前
Apache IoTDB(9):数据库操作——数据写入从CLI到集群部署的六种实战
数据库·apache·时序数据库·iotdb
heimeiyingwang1 小时前
官网知识库结构化整理指南
java·sql·架构·database
l1t1 小时前
DeepSeek总结的数据库性能教学文章
网络·数据库·oracle