Oracle SQL - 使用合并函数

Oracle SQL - using the coalesce function

我真的无法理解 coalesce 函数...或者这是否是获得我想要达到的结果的最佳方式。

我在以下脚本中有三个日期 (iv.dated、iv1.dated、dh.actshpdate)。当我 运行 以下脚本时,日期在单独的列中(如预期的那样);

select unique li.catnr, li.av_part_no, li.artist||' / '||li.title description, li.cust_catnr pallet_ref,
trunc(iv.dated), trunc(iv1.dated), trunc(dh.actshpdate)
from leos_item li
left join invtran_view_oes iv
    on li.av_part_no = iv.part_no 
    and (iv.transaction = 'NREC' and iv.location_no = '        RETURNS    W')
left join invtran_view_oes iv1
    on li.av_part_no = iv1.part_no
    and (iv1.transaction = 'CORR+' and iv1.remark like 'STOCK FROM SP PALLET%')
left join oes_delsegview od
    on od.catnr = li.catnr
    and od.prodtyp = li.prodtyp
    and od.packtyp = li.packtyp
left join oes_dpos dp
    on od.ordnr = dp.ordnr
    and od.posnr = dp.posnr
    and od.segnr = dp.segnr
left join oes_dhead dh
    on dp.dheadnr = dh.dheadnr
where li.cunr = '816900'
and substr(li.catnr,1,5) in ('RGMCD','RGJCD')
and li.item_type = 'FP'
and li.catnr = 'RGJCD221'

我想要实现的是所有日期按日期顺序排列的一列。 我尝试用 ...

替换我的日期
trunc(coalesce(iv.dated, iv1.dated, dh.actshpdate)) transaction_date

...但是,我丢失了一些日期;

我怎样才能达到以下结果?

您可以按以下方式使用 UNION -

WITH DATA AS(
<your query goes here>
)
SELECT A, b, c, d, e FROM DATA
UNION
SELECT A,b,c,d,f FROM DATA
UNION
SELECT A,b,c,d,g FROM DATA

其中 a、b、c、d、e、f、g 是原始查询中 select 列表的列别名。您可以在 UNION 查询中提供自己的列别名。