Oracle - LISTAGG issues [已关闭]

brc7rcf0  于 2023-11-17  发布在  Oracle
关注(0)|答案(1)|浏览(130)

**已关闭。**此问题为not reproducible or was caused by typos。目前不接受回答。

这个问题是由错字或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
21天前关闭
Improve this question
我在运行甲骨文

Oracle Database 12c Standard Edition Release 12.2.0.1.0 - 64bit
Production    PL/SQL Release 12.2.0.1.0 - Production    "CORE 
12.2.0.1.0 - Production"    TNS for IBM/AIX RISC System/6000: Version 12.2.0.1.0 - Production
NLSRTL Version 12.2.0.1.0 - Production

字符串
我面临的问题是,同样,关于LISTAGGSUBSTR
在下面的sqlfiddles中有两个sql,我做了第一个SELECT DISTINCT只是为了向我展示所有的工作都像预期的那样。然后在第二个中,我添加了LISTAGG来分组并放置逗号等。
在下面的sqlfiddle中,我得到一个错误“无效的标识符”http://www.sqlfiddle.com/#!4/cf 13785/1
虽然这一步可以在http://www.sqlfiddle.com/#!4/cf 13785/13中运行,但它并没有给予预期的结果,就好像没有考虑SUBSTR函数并且wdocname字段被完整地读取一样。您可以在fiddle中看到某些值是重复的。
我知道这听起来像是一个重复的问题,但我已经阅读了所有LISTAGG的帖子,我没有得到一个点。
谢谢你帮忙

laawzig2

laawzig21#

它肯定是一个 * 无效的标识符 *,因为你现在查询的是子查询,而不是原始表。

SQL> SELECT LISTAGG (CHR (39) || docs || CHR (39), ', ') WITHIN GROUP (ORDER BY docs) result
  2    FROM (
  3            SELECT DISTINCT SUBSTR (ordref.wdocname, 1, 5) AS docs
  4              FROM ordref
  5         );

RESULT
--------------------------------------------------------------------------------
'AM00A', 'AN00C', 'AS00A', 'AV00A', 'AV00B', 'BC00A', 'ER00B', 'IV00C', 'OD00B',
 'OV00A', 'OV00C', 'SL00B', 'TR00B', 'VL00B'

SQL>

字符串

相关问题