合并来自单个 table 的两个结果时,在 union 上获取不正确的语法

Getting incorrect syntax on union on combining two results from single table

我想合并来自单个 table 的 2 个结果,但在 union all 附近得到不正确的语法。

SELECT  
    ID as 'ABC','1' as 'PQR','2' as 'XYZ', Total as 'LMN'
FROM 
    Employee 
ORDER BY 
    ID

UNION ALL

SELECT  
    ID as 'ABC','1' as 'PQR','2' as 'XYZ', Total as 'LMN'
FROM 
    Employee 
ORDER BY 
    ID

但上面的查询失败并出现错误

Incorrect syntax near union

注意:我使用了union all,因为我不想删除重复的行。

您需要删除第一个 ORDER BY 子句:

SELECT
    ID AS 'ABC',
    '1' AS 'PQR',
    '2' AS 'XYZ',
    Total AS 'LMN'
FROM Employee
UNION ALL
SELECT
    ID AS 'ABC',
    '1' AS 'PQR',
    '2' AS 'XYZ',
    Total AS 'LMN'
FROM Employee
ORDER BY ID

UNION 文档的示例 F 说:

When any SELECT statement in a UNION statement includes an ORDER BY clause, that clause should be placed after all SELECT statements.

从联合的第一部分删除顺序