您可以使用IF()函數對條件進行排序。爲IF()
狀態的文檔:
IF(expr1,expr2,expr3)
如果expr1 TRUE(表達式1 <> 0且expr1的<> NULL)然後IF()返回 表達式2;否則它返回expr3。 IF()返回數值或字符串值 ,具體取決於使用它的上下文。
所以,你可以用它特定的元素,在這樣的頂部進行排序:
SELECT *
FROM fruit
ORDER BY
IF(name = 'Peach', 0, 1),
IF(name = 'Apple', 0, 1),
IF(name = 'Apricot', 0, 1),
name DESC
這是一系列的命令,與第一服用最高優先級。因此,如果name='Peach'
的值爲0,則對於所有其他值,該值將爲1.由於默認的ASC順序,0在1之前,因此確保「Peach」將位於列表的頂部。系列中的第二類指定如何打破第一類的關係。在這種情況下,所有元素在第一種類型中將'桃'綁定爲值'1'。在這種情況下,「蘋果」被推到了領先名單的榜首,實際上這是排行榜中的第二位。等......直到最後一個'名字DESC'。
作爲其他答案指出,CASE()是一系列IF()
秒的替代:
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
第一個版本的返回結果中值= COMPARE_VALUE。 第二個版本返回第一個條件的結果,即 爲true。如果沒有匹配的結果值,ELSE後面的結果是 ,如果沒有ELSE部分,則返回NULL。