使用 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中文网其他相关文章!