1

在 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 关键字

4

2 回答 2

3

您的listagg()代码应该如下所示:

listagg(coalesce(asgu.name, 'In waiting'), ', ') within group (order by asgu.name) as asgu_names,  

其他代码没有意义。要么asgu.name正在聚合,要么没有被聚合。您应该有第二个表达式的聚合函数。

于 2016-10-16T03:58:12.287 回答
1

线路end 'In waiting'不正确。您可以在列别名中使用空格,但必须使用双引号(即end "In waiting"

于 2016-10-16T22:40:44.273 回答