首頁 > 資料庫 > mysql教程 > 如何以特定順序以多個值對 SQL 查詢結果進行排序?

如何以特定順序以多個值對 SQL 查詢結果進行排序?

Linda Hamilton
發布: 2025-01-08 18:08:42
原創
187 人瀏覽過

How Can I Order SQL Query Results by Multiple Values in a Specific Sequence?

依特定順序對多個值進行排序

在SQL中,可以以多個值對查詢結果進行排序,但前提是這些值必須包含在ORDER BY子句中。如果嘗試按ORDER BY子句中未包含的多個值進行排序(如提供的範例所示),則查詢將不傳回任何結果。

要依特定順序對多個值進行排序,建議使用CASE語句:

<code class="language-sql">...
WHERE
   x_field IN ('f', 'p', 'i', 'a') ...
ORDER BY
   CASE x_field
      WHEN 'f' THEN 1
      WHEN 'p' THEN 2
      WHEN 'i' THEN 3
      WHEN 'a' THEN 4
      ELSE 5 -- 对IN子句中未包含的值的回退。例如:x_field = 'b'
   END, id</code>
登入後複製

在此範例中,CASE語句為x_field列中的每個值分配一個數字優先權('f'為1,'p'為2,依此類推)。然後,根據此優先順序對結果進行排序,然後按id列排序,以確保每個優先級等級內的唯一排序。

透過使用CASE語句,可以指定多個值的所需排序順序。在本例中,結果將按'f'、'p'、'i'和'a'的順序排序,如CASE語句中指定的那樣。

以上是如何以特定順序以多個值對 SQL 查詢結果進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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