我有一个应用于表1的listagg函数,我想与另一个查询中返回的子字符串进行比较。
返回第一个查询中的所有元素。
我想获取第一个查询(listagg)中存在但不存在于second(substr)中的记录。
答案 0 :(得分:1)
MINUS对每个子查询的投影进行操作。因为您在子查询中生成聚合字符串,所以您有不同的字符串,因此MINUS不会消除任何内容。
您需要做的是将MINUS应用于单个值,然后将LISTAGG()应用于结果集。除了您使用col2
进行排序外,因此MINUS可能不是最佳解决方案。
也许这就是你所需要的:
select listagg(col,',') within group (order by col2 desc) as name
from table1
where table1.col not in
( select table2.col
from table2 )