簡單排序例子
需求提升,小試牛刀
函式說明
實現方式1:直接排序
實現方式2:自定義排序欄位後排序
需求提升,大展身手
簡單排序例子
我們現在有學生資料
簡單查詢排序按照分數的升序排列
需求提升,小試牛刀
但是我們現在有一個需求,把分數分為3個等級,
優秀(80分以上)合格【60-80】不合格(60分一以下)
要求排序的順序是:優秀--合格--不合格,同等級的再按照分數的升序排序
根據我們的資料,一共有5個分數(40,49,60,89,98),按照以上的排序需求,正確的排序後的結果順序應該為(89,98,60,40,49)
看到這個(89,98,60,40,49),懵了,這完全沒有規律可言,這就需要我們的自定義排序了,也就是我們這篇文章的主題
函式說明
CASE
Powered by Ad.Plus
WHEN 條件1 THEN 返回結果1
WHEN 條件2 THEN 返回結果2
ELSE 返回結果3
END 正序還是倒序
CASE 表示函式開始
END 表示函式結束
如果 條件1 成立,則返回 返回結果1, 如果 條件2 成立,則返回 返回結果2,當全部不成立則返回ELSE後面的返回結果3,而當有一個成立之後,後面的就不執行了。
實現方式1:直接排序
實現方式2:自定義排序欄位後排序
需求提升,大展身手
現在我們的需求提升了,分數還是分為3個等級,
優秀(80分以上)合格【60-80】不合格(60分一以下)
要求排序的順序是:優秀--合格--不合格,但是要求優秀的級別內按降序排序,其他按升序排序,那所期望的結果就變為(98,89,60,40,49)
上面實現方式2中實現了所有的級別內都是統一升序或者降序排序,那麼要滿足我們現在的需求,那就再改造一下
最新評論