首頁 >資料庫 >mysql教程 >如何對多個 UNIONed SQL 查詢的結果進行排序?

如何對多個 UNIONed SQL 查詢的結果進行排序?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-11 06:16:41655瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn