SELECT TEXT FROM
(select row_number()over(order by A_ID)||'、'||A_ID||CHR(9)||A_content TEXT,A_ID,NULL TIME FROM A
UNION ALL
SELECT B_ID||CHR(9)||B_FKNR||CHR(9)||B_TIME||CHR(9)||F_A_ID TEXT,F_A_ID,B_TIME TIME FROM B)
ORDER BY A_ID,TIME DESC
(select row_number()over(order by A_ID)||'、'||A_ID||CHR(9)||A_content TEXT,A_ID,NULL TIME FROM A
UNION ALL
SELECT B_ID||CHR(9)||B_FKNR||CHR(9)||B_TIME||CHR(9)||F_A_ID TEXT,F_A_ID,B_TIME TIME FROM B)
ORDER BY A_ID,TIME DESC
with A as
(
select 'A1' A_ID,'GZBZ1' A_CONTENT FROM DUAL UNION ALL
select 'A2' A_ID,'GZBZ2' A_CONTENT FROM DUAL UNION ALL
select 'A3' A_ID,'GZBZ3' A_CONTENT FROM DUAL
),
B AS
(
SELECT 'B1' B_ID,'S1' B_FKNR,SYSDATE B_TIME,'A1' F_A_ID FROM DUAL UNION ALL
SELECT 'B2' B_ID,'S2' B_FKNR,SYSDATE B_TIME,'A1' F_A_ID FROM DUAL UNION ALL
SELECT 'B3' B_ID,'S3' B_FKNR,SYSDATE B_TIME,'A1' F_A_ID FROM DUAL UNION ALL
SELECT 'B4' B_ID,'S4' B_FKNR,SYSDATE B_TIME,'A2' F_A_ID FROM DUAL UNION ALL
SELECT 'B5' B_ID,'S5' B_FKNR,SYSDATE B_TIME,'A2' F_A_ID FROM DUAL UNION ALL
SELECT 'B6' B_ID,'S6' B_FKNR,SYSDATE B_TIME,'A3' F_A_ID FROM DUAL
)
SELECT * FROM(
SELECT DISTINCT A.A_ID C1,A.A_CONTENT C2,NULL C3,NULL C4 FROM A,B WHERE A.A_ID=B.F_A_ID
UNION ALL
SELECT B.B_ID C1,B.B_FKNR C2,B_TIME C3,F_A_ID C4 FROM B,A WHERE A.A_ID=B.F_A_ID)
ORDER BY DECODE(C4,NULL,C1,C4),C3 DESC;
from (select a.aid as b_id, a.a_content as b_fknr, null as b_time, a.aid
from a
union all
select aa.b_id, aa.b_fknr, aa.b_time, aa.aid
from a a, aa aa
where a.aid = aa.aid)
order by aid ,b_id