栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

数据库中自定义排序规则,Mysql中自定义字段排序规则,Oracle中自定义字段排序规则,decode函数的用法,field函数的用法

数据库中自定义排序规则,Mysql中自定义字段排序规则,Oracle中自定义字段排序规则,decode函数的用法,field函数的用法

数据库中自定义排序 场景:有一张banner表,表中有一个status字段,有0, 1, 2三个状态位,我想要 1,0,2的自定义排序(这里是重点),然后再进行之上对sequence字段进行二次排序(这里看个人需求)。

普通的sql只能对一个字段进行简单的大小排序,如下:

SELECt
	* 
FROM
	banner 
ORDER BY
	`status`,
	sequence ASC;

这里我们对banner这张表中的status字段先进行排序,然后对排序后的子集再对sequence字段进行排序。

但这样排序的话,我的status的排序顺序就成了0,1,2的顺序了,如何达到1,0,2呢? 就需要使用带数据库的函数,如下:

Oracle(decode函数):
SELECt
	* 
FROM
	banner 
ORDER BY
	decode( `status`, '别名1', 1, '别名2', 0, '别名3', 2 ),
	sequence ASC;
Mysql(field函数):
SELECt
	* 
FROM
	banner 
ORDER BY
	field( `status`, 1, 0, 2 ),
	sequence ASC;
效果如下:

以上!感谢我的专属DBA刘某~ 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/303341.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号