两种表类型的有序并集

时间:2019-03-15 15:34:30

标签: sql oracle

我有两种表类型 lv_crds_auto lv_crds_manual 。它们的指定如下:

TYPE t_crds IS RECORD(
  NAME    VARCHAR2(100),
  surname VARCHAR2(100),
  amount  NUMBER);

TYPE t_crds_data IS TABLE OF t_crds;
lv_crds_auto   t_crds_data;
lv_crds_manual t_crds_data;

我需要两个表的数据集,但是必须按数量排序。

例如,我们在表中具有以下值:

enter image description here

我需要遍历这些值,但是应该将它们连接起来并按金额值进行排序,如下所示:

enter image description here

能否请您告诉我我该如何实现?

1 个答案:

答案 0 :(得分:1)

您要UNION ALL

select name,surname,amount from
(
  select name,surname,amount from lv_crds_auto 
    UNION ALL
  select name,surname,amount from lv_crds_manual
) ORDER BY amount

请注意,如果数量相同,则无法确保金塔(Ginta),马拉加雷特(Maragaret),阿里亚纳(Ariana)始终位于第一,第二和第三行。您可能需要在order by的另一列中维护查询结果中的所需顺序。