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;
我无法理解我的代码中的错误。有人可以帮我吗?
这是我的 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;