数据库中自定义排序规则,Mysql中自定义字段排序规则,Oracle中自定义字段排序规则,decode函数的用法,field函数的用法
生活随笔
收集整理的這篇文章主要介紹了
数据库中自定义排序规则,Mysql中自定义字段排序规则,Oracle中自定义字段排序规则,decode函数的用法,field函数的用法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
數據庫中自定義排序
場景:有一張banner表,表中有一個status字段,有0, 1, 2三個狀態位,我想要 1,0,2的自定義排序(這里是重點),然后再進行之上對sequence字段進行二次排序(這里看個人需求)。
普通的sql只能對一個字段進行簡單的大小排序,如下:
SELECT*
FROMbanner
ORDER BY`status`,sequence ASC;
這里我們對banner這張表中的status字段先進行排序,然后對排序后的子集再對sequence字段進行排序。
但這樣排序的話,我的status的排序順序就成了0,1,2的順序了,如何達到1,0,2呢? 就需要使用帶數據庫的函數,如下:
Oracle(decode函數):
SELECT*
FROMbanner
ORDER BYdecode( `status`, '別名1', 1, '別名2', 0, '別名3', 2 ),sequence ASC;
Mysql(field函數):
SELECT*
FROMbanner
ORDER BYfield( `status`, 1, 0, 2 ),sequence ASC;
效果如下:
以上!感謝我的專屬DBA劉某~ 😘
總結
以上是生活随笔為你收集整理的数据库中自定义排序规则,Mysql中自定义字段排序规则,Oracle中自定义字段排序规则,decode函数的用法,field函数的用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mybatis查询报错:com.mysq
- 下一篇: docker报错:driver fail