通過SQL語句,將特定數據行置頂或置底顯示

最近項目中涉及一個需求:顯示某個表數據時,希望把其中某個字段爲特定值的行置頂或置底顯示,以便區分

假如我們有一個職級表userlevel


其中職級字段rank有0原級、1初級、2中級、3高級、4資深,一共五個枚舉值,我希望每次查詢的時候將3高級置頂顯示

貧窮限制了我的思維,以下SQL解決方法來自網絡:

1.通過case when+排序

select (case when a.rank='3' then 0 else 1 end) as flag,a.* from userlevel a order by flag asc;

這是置頂顯示,置底的話order by flag desc反序排列即可;

2.通過union

select * from userlevel where rank='3' union all select * from userlevel where rank<>'3';



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章