首页 > 数据库 > mysql教程 > 如何对多个 UNIONed SQL 查询的结果进行排序?

如何对多个 UNIONed SQL 查询的结果进行排序?

Mary-Kate Olsen
发布: 2025-01-11 06:16:41
原创
632 人浏览过

How Can I Order Results from Multiple UNIONed SQL Queries?

使用 UNION 对组合 SQL 查询的结果进行排序

在 SQL 中使用 UNION 组合多个 SELECT 语句的结果时,您可能需要对最终输出进行排序。 了解 UNION 的排序方式至关重要。

考虑这个例子:

<code class="language-sql">SELECT id, name, age
FROM Student
WHERE age < 20
UNION
SELECT id, name, age
FROM Student
WHERE age > 30;</code>
登录后复制

简单地向每个单独的ORDER BY语句添加SELECT子句不会对最终组合结果进行排序。 每个子查询中的 ORDER BY 子句仅与该特定子查询的结果组合之前相关。

要正确对组合结果集进行排序,请将 ORDER BY 子句 放在 最后 UNION 语句之后:

<code class="language-sql">SELECT id, name, age
FROM Student
WHERE age < 20
UNION
SELECT id, name, age
FROM Student
WHERE age > 30
ORDER BY name;</code>
登录后复制

在此修订后的查询中,ORDER BY name 子句适用于 UNION 操作生成的整个数据集。 组合结果被视为单个表,然后按 name 列的字母顺序排序。无论哪个原始子查询提供了数据,这都确保了正确的排序。

以上是如何对多个 UNIONed SQL 查询的结果进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板