sql利用case...when...對非數值字段進行排序

在項目中遇到需要對非數字類型的字段狀態進行排序,怎麼能給字符串類型轉換成對應的數值類型再進行排序呢?

('waiting2', "等待leader審批"),  ('fail', "審批失敗"),('waiting', "等待管理員審批"),('configuring', "管理員正在配置"), ('configured', "配置完成"),('modify', "修改配置"), ('recycling', "正在回收"), ('done', "已回收")

於是發現了sql中超好用的一個函數case...when...

case when 可以給滿足不同的狀態的條件不同的值,這樣可以很方便的滿足我們排序分類聚合的需求

SELECT sj.*, (case progress when 'waiting' then 1 when 'configuring' then 2 when 'configured' then 3    when 'pass' then 4 when 'fail' then 5  when 'modify' then 6 when 'recycling' then 7 when 'done' then 8 end) as po FROM `support_job` sj 
order by po, transfer_at asc

當然python裏面也是支持case...when...的

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