SQL语句 - 使用order by优先级排序
2015-12-03 13:56
387 查看
背景:现有地区表area_info,地区表只有一个字段admincode,表示地区编号,要求查询所有地区编号出来,其中“1305”开头的编号排在首位,“1307”开头的编号排在第二位。
使用SQL语句的order by 和case when进行优先级排序:
其中“1”和“2”所在位置的内容只是组别,不超过10不影响排序。对比结果如下:
如果还想进行二级排序,令每一个组合里(这里1305为一个组合)升序排序:
使用SQL语句的order by 和case when进行优先级排序:
select * from area_info where admincode like '13%' order by case when admincode like '1305%' then 1 else 10 end, case when admincode like '1307%' then 2 else 10 end;
其中“1”和“2”所在位置的内容只是组别,不超过10不影响排序。对比结果如下:
如果还想进行二级排序,令每一个组合里(这里1305为一个组合)升序排序:
select * from area_info where admincode like '13%' order by case when admincode like '1305%' then 5 else 10 end, case when admincode like '1307%' then 2 else 10 end, admincode;
相关文章推荐
- Spatialite使用指南
- Oracle物理体系结构图
- Windows 平台搭建Redis数据库
- mysql添加外键
- PLSQL Developer连接数据库(64位操作系统)
- Redis集群解决方案比较
- oracle,如何查看视图结构,获得视图中的字段名称、字段类型、字段长度等。
- 把数据保存到数据库附加表dede_addon时出错,原因是字段名不合法
- 把数据保存到数据库附加表dede_addon时出错,原因是字段名不合法
- SQL Server系列(8) -- 触发器
- SQL 数据类型
- SQL Server——数据类型
- ORACLE PL/SQL编程之八: 把触发器说透
- Redis主从配置
- 02Redis入门指南笔记(基本数据类型)
- Oracle之trunc函数使用
- Oracle之一份标准日历表的构建
- Oracle之第一天和最后一天
- sql 根据经纬度求距离
- 关于MongoDB的group用法