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