SQL查询结果按照指定内容排序
一般来说,我们在开发SQL脚本的时候,遇到需要排序的内容,用order by需要排序的字段就可以满足我们排序的需求,asc为升序、desc为降序,不指定关键字默认为升序。但是有时候,我们需要的排序不仅仅是升序和降序,asc与desc并不能满足我们的排序需求,所以我们需要用到按照指定的内容进行排序的操作,下面我们就从MySQL与Oracle两个数据库来看一下具体的操作: 一、MySQL 1,函数FIELD
特殊情况说明: (1)指定的排序内容为字段的所有内容 意思是office_name里面只包含’云南办’,‘江苏办’,‘山西办’,可以直接用下面语句进行排序
结果展示: (2)指定的排序内容为字段的部分内容 意思是office_name里面不仅包含’云南办’,‘江苏办’,‘山西办’,还有别的内容,但是你只想把这三个省的内容放在最前面,那么你需要用下面的语句进行排序
结果展示: 如果使用order by FIELD(office_name,‘云南办’,‘江苏办’,‘山西办’)mssql 按关键字排序, 排序内容为 其他省份,‘云南办’,‘江苏办’,‘山西办’
结果展示: 2,函数locate locate的用法和field很相似,只是locate是判断字符串的内容是否包含在指定的字符串里。下面是详细讲解
结果展示 二、Oracle 在Oracle中,使用decode函数,就可以实现按照指定内容排序的功能,下面是详细的讲解。
1,指定的内容为字段的全部内容 SQL例子:
查询结果: 2,指定内容为字段的部分内容 Oracle的decode函数,和MySQL的field()函数还是有差别的,即便是你在排序的时候,指定的内容为字段的部分内容,也不会影响排序结果,首先按照指定内容排序,其他的放在指定内容的后面。 示例SQL:
查询结果: 到这里,指定字段内容的排序就结束了,大家可以按照自己的需求以及目标数据库进行对应选择使用,希望可以给你带来思路和开发便利。 我是晓之以理的喵~,欢迎交流。 (编辑:成都站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- sql的存储过程定义有哪些方法,你知道几种?
- html解决table设置宽度无效的问题
- sqlserver合并DataTable并排除重复数据的通用方法说明
- sql-server – 如何使用SELECT INTO复制表但忽略IDENTITY属
- sql-server – 如何有效地检查多列上的EXISTS?
- GSM通讯网络存在安全漏洞 打手机可能被偷听
- sql-server – SQL Server中是否存在“包含文件”的概念?
- sql-server – 如何在WiX安装程序中检测SQL Server Express
- sql查询怎么样去除重复数据?教你三种方法
- (转载)MSSQL导入导出时主键与约束丢失的问题解决