create table test(
a varchar2(50),
b varchar2(50),
c varchar2(50),
d varchar2(50)
)
SET DEFINE OFF;
Insert into PORTAL.TEST
(A, B, C, D)
Values
('d', 'd', 'd', '2');
Insert into PORTAL.TEST
(A, B, C, D)
Values
('d', 'd', 'd', '1');
Insert into PORTAL.TEST
(A, B, C)
Values
('c', 'c', 'c');
Insert into PORTAL.TEST
(A, B, C, D)
Values
('a', 'a', 'a', '2');
Insert into PORTAL.TEST
(A, B, C, D)
Values
('a', 'a', 'a', '1');
COMMIT;
select * from
(select row_number() over (partition by a,b,c order by d) num,a,b,c,d from test)
where num=1
当记录出现 a b c 三个字段出现同一数据时候取第一条记录,其它正常显示