当前位置:数据库 > Oracle >>

oracle找出表中某几个字段数据相同的记录

oracle找出表中某几个字段数据相同的记录
 
[sql] 
create table student(id number primary key,name varchar2(20),gender varchar2(2));  
创建表student,包含两个主要字段name 和gender.
 
插入几条数据。
[sql] 
ID NAME                 GENDER                                                
-- -------------------- --                                                
 1 张三                 男                                                
 2 李四                 男                                                
 3 李四                 男                                                
 4 李四                 女                                                
 5 张三                 女                                                
 6 张三                 男        
可以看到id(1,6)的name和gender相同,id(2,3)的name和gender也相同。
 
现在提个需求:列出name和gender都相同的记录。写sql
[sql] 
SQL> SELECT s.name,s.gender  
  2  FROM student s  
  3  WHERE ((SELECT COUNT(*)  
  4            FROM student  
  5            WHERE name = s.name and gender = s.gender) > 1)  
  6  ORDER BY name,gender DESC;  
  
NAME                 GE                                                           
-------------------- --                                                           
李四                 男                                                           
李四                 男                                                           
张三                 男                                                           
张三                 男      
本题目思路是连表查询,在where子句中使用子查询,分离出两个字段作为筛选条件,而后直接得出所有记录。
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,