我有一个表作为admin_emp_leave_header其中包含一列作为START_DATE。
假设我使用以下查询来获取这些日期:
select START_DATE sd
from admin_emp_leave_header;
我得到以下结果
SD
--------
01-01-2017
02-01-2017
03-01-2017
04-01-2017
但我希望输出为
SD
----------------------------------------------------
'01-01-2017','02-01-2017','03-01-2017','04-01-2017'
我如何使用预言机获得它?
您可以使用
TO_CHAR
函数将DATE
转换为文本,然后使用 LISTAGG
函数连接这些字符串:
SELECT LISTAGG(TO_CHAR(start_date,'''MM-DD-YYYY'''),',') WITHIN GROUP (ORDER BY start_date)
FROM admin_emp_leave_header
如果还需要获取具有相同格式的当前日期,以防上一个查询未返回任何记录,则只需使用 NVL
:
SELECT NVL(LISTAGG(TO_CHAR(start_date,'''MM-DD-YYYY'''),',') WITHIN GROUP (ORDER BY start_date),TO_CHAR(SYSDATE,'''MM-DD-YYYY'''))
FROM admin_emp_leave_header