利用CASE表達式依特定值對SQL結果排序
從表格中檢索資料時,通常需要根據特定順序中的多個值對結果進行排序。在這種情況下,任務是根據指定的鍵和非索引欄位從表中提取記錄,並按特定序列中的多個值對結果進行排序。
為了滿足此要求,可以使用CASE表達式來實現所需的排序,而不是使用傳統的ORDER BY語法。 CASE表達式的語法如下:
<code class="language-sql">CASE WHEN condition1 THEN value1 WHEN condition2 THEN value2 ... ELSE valueN END</code>
在本例中,CASE表達式用於為x_field中的每個值分配一個特定的順序。例如,值'f'、'p'、'i'和'a'分別被分配順序號1、2、3和4。任何其他與這些特定值不符的值都將被指派為預設順序號5。
以下是CASE表達式如何加入SQL查詢的範例:
<code class="language-sql">SELECT * FROM table 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表達式,結果將根據分配的順序號進行排序,有效地按指定的序列對值'f'、'p'、'i'和'a'進行排序。
以上是CASE 表達式如何依特定值對 SQL 結果排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!