SQL Union All 命令未正确结束

SQL command not properly ended for Union All

我无法理解我的代码中的错误。有人可以帮我吗?

这是我的 sql 查询

SELECT S.SUBSTR(ASSIGNED_NUMBER, -4) FROM (
   SELECT SUBSTR(ASSIGNED_NUMBER, -4) AS SDATE FROM TBL_DATA1 GROUP BY SUBSTR(ASSIGNED_NUMBER, -4)
   UNION ALL
   SELECT SUBSTR(ASSIGNED_NUMBER, -4) AS SDATE FROM TBL_DATA2 GROUP BY SUBSTR(ASSIGNED_NUMBER, -4)
) AS S GROUP BY S.SUBSTR(ASSIGNED_NUMBER, -4);

Note: Originally, My outer column is S.SDATE and edited it to S.SUBSTR(ASSIGNED_NUMBER, -4).

输出:

ORA-00933: SQL command not properly ended 00933. 00000 - "SQL command not properly ended"

顺便说一下,我的 ASSIGNED_NUMBER 列中的样本日期是 58-2016。 我使用子字符串来获取 2016

当您在 SDATE 的子查询别名中给出列时,您正在使用 S.SUBSTR(ASSIGNED_NUMBER, -4)。

此外,当使用子查询时,命名应该是 ) s 而不是 ) AS S

您的查询应该是

SELECT S.SDATE FROM (
   SELECT SUBSTR(ASSIGNED_NUMBER, -4) AS SDATE FROM TBL_DATA1 GROUP BY SUBSTR(ASSIGNED_NUMBER, -4)
   UNION ALL
   SELECT SUBSTR(ASSIGNED_NUMBER, -4) AS SDATE FROM TBL_DATA2 GROUP BY SUBSTR(ASSIGNED_NUMBER, -4)
) S GROUP BY S.SDATE;
SELECT S.SDATE FROM (
   SELECT SUBSTR(ASSIGNED_NUMBER, -4) AS SDATE FROM TBL_DATA1 GROUP BY SUBSTR(ASSIGNED_NUMBER, -4)
   UNION ALL
   SELECT SUBSTR(ASSIGNED_NUMBER, -4) AS SDATE FROM TBL_DATA2 GROUP BY SUBSTR(ASSIGNED_NUMBER, -4)
)  S GROUP BY S.SDATE;