现在表1:
A B C
1 1 SAD
1 2 DSF
1 3 SAF
1 4 SDF
2 1 SAD
2 2 DSF
2 3 SAF
2 4 SDF
怎么能实现A属性重复时不显示A属性,如表2
A B C
1 1 SAD
2 DSF
3 SAF
4 SDF
2 1 SAD
2 DSF
3 SAF
4 SDF
请问各位大哥,这个用存储过程怎么实现?
A B C
1 1 SAD
1 2 DSF
1 3 SAF
1 4 SDF
2 1 SAD
2 2 DSF
2 3 SAF
2 4 SDF
怎么能实现A属性重复时不显示A属性,如表2
A B C
1 1 SAD
2 DSF
3 SAF
4 SDF
2 1 SAD
2 DSF
3 SAF
4 SDF
请问各位大哥,这个用存储过程怎么实现?
insert into tb values('1' , '1' , 'SAD')
insert into tb values('1' , '2' , 'DSF')
insert into tb values('1' , '3' , 'SAF')
insert into tb values('1' , '4' , 'SDF')
insert into tb values('2' , '1' , 'SAD')
insert into tb values('2' , '2' , 'DSF')
insert into tb values('2' , '3' , 'SAF')
insert into tb values('2' , '4' , 'SDF')
goselect case when b = (select min(b) from tb where A = t.A) then A else '' end A , B , C from tb tdrop table tb/*
A B C
- - ----------
1 1 SAD
2 DSF
3 SAF
4 SDF
2 1 SAD
2 DSF
3 SAF
4 SDF 8 rows selected.
*/
FROM (select t.*, row_number() over(partition by A order by rownum) rn
from test t)
insert into tb values('1' , '1' , 'SAD')
insert into tb values('1' , '2' , 'DSF')
insert into tb values('1' , '3' , 'SAF')
insert into tb values('1' , '4' , 'SDF')
insert into tb values('2' , '1' , 'SAD')
insert into tb values('2' , '2' , 'DSF')
insert into tb values('2' , '3' , 'SAF')
insert into tb values('2' , '4' , 'SDF')
goselect case when b = (select min(b) from tb where A = t.A) then A else '' end A , B , C from tb tselect decode(rn, 1, A, null) A, B, C FROM (select t.*, row_number() over(partition by A order by rownum) rn from tb t)drop table tb/*
A B C
- - ----------
1 1 SAD
2 DSF
3 SAF
4 SDF
2 1 SAD
2 DSF
3 SAF
4 SDF 8 rows selected.
*/