首頁 > 資料庫 > mysql教程 > 如何在 SQL 中對具有特定值的行進行優先排序然後按字母順序排序?

如何在 SQL 中對具有特定值的行進行優先排序然後按字母順序排序?

Barbara Streisand
發布: 2025-01-01 03:07:09
原創
559 人瀏覽過

How to Prioritize Rows with a Specific Value Then Sort Alphabetically in SQL?

先傳回具有特定值的行

問題:

您希望擷取資料從表中,優先考慮特定列中包含特定值的行。其餘行應基於另一列按字母順序排列。

考慮具有以下結構的範例表 Users:

id name city
1 George Seattle
2 Sam Miami
3 John New York
4 Amy New York
5 Eric Chicago
6 Nick New York

解:

要根據特定值確定行的優先順序並按字母順序排列剩餘行,請使用以下命令查詢:

ORDER BY CASE WHEN city = 'New York' THEN 1 ELSE 2 END, city
登入後複製

解釋:

CASE 表達式將優先權值1 指派給城市列與指定值(「紐約」)相符的行所有其他行的優先權值為2。這可確保包含「New York」的行首先出現在結果集中。

ORDER BY 子句的第二部分,城市,根據城市列進一步按字母順序對每個優先權組內的行進行排序。

此查詢將傳回以下結果:

id name city
3 John New York
4 Amy New York
6 Nick New York
1 George Seattle
2 Sam Miami
5 Eric Chicago

以上是如何在 SQL 中對具有特定值的行進行優先排序然後按字母順序排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板