Oracle sql:[1]获取多列值相同数据行
1、创建实验模拟多行多列值数据相同的行--创建表create table CLGJXX( ID NUMBER(3) unique, HPHM 蕺清寤凯VARCHAR2(5), JGSJ VARCHAR2(14))--插入数据insert into clgjxx (ID, HPHM, JGSJ) values (101, 'aaa', '20141010161000');insert into clgjxx (ID, HPHM, JGSJ) values (102, 'aaa', '20141010161000');insert into clgjxx (ID, HPHM, JGSJ) values (103, 'bbb', '20141010161001');insert into clgjxx (ID, HPHM, JGSJ) values (104, 'bbb', '20141010161001');insert into clgjxx (ID, HPHM, JGSJ) values (105, 'ccc', '20141010161100');insert into clgjxx (ID, HPHM, JGSJ) values (106, 'ccc', '20141010161100');insert into clgjxx (ID, HPHM, JGSJ) values (107, 'aaa', '20141010161124');commit;说明:CLGJXX 表中出现了多行HPHM 列和JGSJ 列的值相同
![Oracle sql:[1]获取多列值相同数据行](https://exp-picture.cdn.bcebos.com/3c42a5ea3e863048e58ee960c33104ebf7a75261.jpg)
3、获取多行多列值数据相同的行中的某一行,这在删除的时候有用select * FROM clgjxx aWHERE a.ROWID >(SELECT MIN( b.ROWID ) FROM clgjxx bWHERE b.hphm = a.hphmand b.jgsj=a.jgsj);
![Oracle sql:[1]获取多列值相同数据行](https://exp-picture.cdn.bcebos.com/506d92f1d8a72633da49f357c02c56ee7a7f4461.jpg)
5、获取相同数据的行with same_date as(select hphm,jgsj from clgjxx_2 group by (hphm,jgsj) having count(1) >1)select * from clgjxx_2 a where exists(select 'A' from same_date bwhere a.hphm=b.hphmand a.jgsj=b.jgsj);注意:在这里可以发现只是和第二步骤表名不同,其实这是有规律的,只要保证所选取的分组列分组之后的数据唯一就行
![Oracle sql:[1]获取多列值相同数据行](https://exp-picture.cdn.bcebos.com/fdb4f00d3aceaad7eca63256eee7340f6578b861.jpg)