[英]I would require assistance in using LISTAGG function
SELECT pid
,LISTAGG(DISTINCT acc_no, ',') WITHIN GROUP(ORDER BY acc_no)
AS acc_no_txt
FROM
(SELECT pid
,CASE WHEN acc_no_v01 IN ('not found','blank','nil-value','',' ','null') THEN 'Acc Nbr Not Enterered'
ELSE acc_no_v01
END
AS acc_no
,MIN(TRY_TO_NUMBER(T2.vp_no)) AS vp_no
FROM table_1 T1
JOIN table_2 T2
ON T2.click_stream_integration_id = T1.click_stream_integration_id
WHERE T2.date = '2022-01-01'
AND pid='123456789'
GROUP BY pid,acc_no_v01
ORDER BY TRY_TO_NUMBER(vp_no)
)
GROUP BY pid;
当我运行上述查询时,我得到如下所述的结果:
PID ACC_NO_TXT
123456789 12244059141,Acc Nbr Not Enterered
我想显示如下所示的结果:
PID ACC_NO_TXT
123456789 12244059141
我不想显示 - Acc Nbr Not Enterered
谁能帮我实现这一目标?
谢谢!
我不知道他为什么不将其发布为答案,但您可以按照 Dean Flinter 所说的去做:
SELECT pid
,LISTAGG(DISTINCT acc_no, ',') WITHIN GROUP(ORDER BY acc_no)
AS acc_no_txt
FROM
(SELECT pid
,CASE WHEN acc_no_v01 IN ('not found','blank','nil-value','',' ','null') THEN NULL
ELSE acc_no_v01
END
AS acc_no
,MIN(TRY_TO_NUMBER(T2.vp_no)) AS vp_no
FROM table_1 T1
JOIN table_2 T2
ON T2.click_stream_integration_id = T1.click_stream_integration_id
WHERE T2.date = '2022-01-01'
AND pid='123456789'
GROUP BY pid,acc_no_v01
ORDER BY TRY_TO_NUMBER(vp_no)
)
GROUP BY pid;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.