Mybatis自定義排序詳解
簡單排序例子
需求提升,小試牛刀
函數(shù)說明
實現(xiàn)方式1:直接排序
實現(xiàn)方式2:自定義排序字段后排序
需求提升,大展身手
簡單排序例子

我們現(xiàn)在有學生數(shù)據(jù)
簡單查詢排序按照分數(shù)的升序排列

需求提升,小試牛刀
但是我們現(xiàn)在有一個需求,把分數(shù)分為3個等級,
優(yōu)秀(80分以上)合格【60-80】不合格(60分一以下)
要求排序的順序是:優(yōu)秀--合格--不合格,同等級的再按照分數(shù)的升序排序
根據(jù)我們的數(shù)據(jù),一共有5個分數(shù)(40,49,60,89,98),按照以上的排序需求,正確的排序后的結(jié)果順序應該為(89,98,60,40,49)
看到這個(89,98,60,40,49),懵了,這完全沒有規(guī)律可言,這就需要我們的自定義排序了,也就是我們這篇文章的主題
函數(shù)說明
CASE
Powered by Ad.Plus
WHEN 條件1 THEN 返回結(jié)果1
WHEN 條件2 THEN 返回結(jié)果2
ELSE 返回結(jié)果3
END 正序還是倒序
CASE 表示函數(shù)開始
END 表示函數(shù)結(jié)束
如果 條件1 成立,則返回 返回結(jié)果1, 如果 條件2 成立,則返回 返回結(jié)果2,當全部不成立則返回ELSE后面的返回結(jié)果3,而當有一個成立之后,后面的就不執(zhí)行了。
實現(xiàn)方式1:直接排序



實現(xiàn)方式2:自定義排序字段后排序

需求提升,大展身手
現(xiàn)在我們的需求提升了,分數(shù)還是分為3個等級,
優(yōu)秀(80分以上)合格【60-80】不合格(60分一以下)
要求排序的順序是:優(yōu)秀--合格--不合格,但是要求優(yōu)秀的級別內(nèi)按降序排序,其他按升序排序,那所期望的結(jié)果就變?yōu)椋?8,89,60,40,49)
上面實現(xiàn)方式2中實現(xiàn)了所有的級別內(nèi)都是統(tǒng)一升序或者降序排序,那么要滿足我們現(xiàn)在的需求,那就再改造一下

