首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何将Order BY放在SQL UNION中,以便TOTALS始终显示为最后一行?

在 SQL 中,UNION 用于将两个或多个 SELECT 语句的结果集组合在一起,并删除重复的行。因此,在 UNION 中,我们不能直接使用 ORDER BY 子句。但是,我们可以使用子查询或临时表来实现在 UNION 中添加 ORDER BY 的功能。

以下是一个示例,展示如何将 ORDER BY 放在 SQL UNION 中,以便 TOTALS 始终显示为最后一行:

代码语言:sql
复制
SELECT * FROM (
    SELECT 'A' AS type, SUM(value) AS total
    FROM table1
    GROUP BY type
    UNION
    SELECT 'B' AS type, SUM(value) AS total
    FROM table2
    GROUP BY type
    UNION
    SELECT 'TOTALS' AS type, SUM(value) AS total
    FROM (
        SELECT 'A' AS type, value FROM table1
        UNION
        SELECT 'B' AS type, value FROM table2
    ) AS subquery
) AS result
ORDER BY
    CASE
        WHEN type = 'TOTALS' THEN 1
        ELSE 0
    END DESC,
    type ASC;

在这个示例中,我们首先使用 UNION 将两个 SELECT 语句的结果集组合在一起。然后,我们使用子查询将这些结果集与 TOTALS 行组合在一起。最后,我们使用 ORDER BY 子句将 TOTALS 行放在最后一行,并按照其他行的排序规则进行排序。

需要注意的是,这个示例仅仅是一个示例,具体的实现方式可能会因为数据库类型和数据结构的不同而有所不同。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 领券