|
-
Try this method ...
drop table my_table;
create table my_table (my_section number,my_piece number,my_text varchar2(4));
insert into my_table values (1,1,'ABCD');
insert into my_table values (1,2,'E');
insert into my_table values (1,3,'FGH');
insert into my_table values (1,4,'IJK');
insert into my_table values (2,1,'LM');
insert into my_table values (2,2,'NOP');
select my_section,all_text from
(
select
my_section,
my_piece,
my_text||
lead(my_text,1) over (partition by my_section order by my_piece)||
lead(my_text,2) over (partition by my_section order by my_piece)||
lead(my_text,3) over (partition by my_section order by my_piece)||
lead(my_text,4) over (partition by my_section order by my_piece)||
lead(my_text,5) over (partition by my_section order by my_piece)||
lead(my_text,6) over (partition by my_section order by my_piece)||
lead(my_text,7) over (partition by my_section order by my_piece) all_text,
first_value(my_piece) over(partition by my_section) first_piece
from
my_table
)
where my_piece = first_piece
/
MY_SECTION ALL_TEXT
---------- --------------------------------
1 ABCDEFGHIJK
2 LMNOP
Like most SQL-based methodologies you have to code an upper limit on the number of strings you are going to concatenate, but it has the advantages of ...
i) not requiring PL/SQL
ii) being v. fast.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|