【发布时间】:2016-10-16 02:14:37
【问题描述】:
在 listagg 中使用 nvl 调用时遇到问题。
我是 SQL 新手,所以我仍然对语法有疑问..
listagg(nvl(asgu.name, ', '),'In waiting')
within group (order by asgu.name) as asgu_name,
case
when asgu.name is not null then asgu.name
else 'In Waiting'
end 'In waiting',
错误:ORA-00923:FROM 关键字未在预期位置找到
【问题讨论】:
-
添加完整查询以及示例数据和预期结果..
-
这是一个很长的查询,我认为您不想看到全部内容。预期结果是名称,如果字段为空,那么我希望它说“等待中”。但是我可以告诉你,在添加 nvl 之前,这个查询工作得很好
-
考虑使用coalesce - 比
nvl性能更好 -
@EdHeal 我也试过了,在组内(按 asgu.name 排序)作为 asgu_name,'等待中')并得到错误:缺少内
-
请问,你的目标是什么?看起来你的文字也颠倒了。如果您希望分隔符为 ', ' 而缺失值为 'In waiting',则需要反转它们。但是,该 SQL 应该按原样运行,所以我认为问题出在其他地方。