mysql order by case when
来源:互联网 发布:创世数据网 编辑:程序博客网 时间:2024/05/22 04:43
mysql order by case when的用法
需求
对一个年级的学生按班级进行排序,按班级从小到大排序,如果班级为空排在最后
代码
SELECT @ROW := @ROW + 1 AS rowno, ID, MOBILE_NO, FIRST_NAME, MEM_CLASS, enrollment_year, DATE_FORMAT(joinclass_date, '%Y-%m-%d') joinclass_date, NIKE_NAME, LOGIN_NAMEFROM T_MEMBER, (SELECT @ROW := 0) rWHERE DELETED = 'N'AND MEM_TYPE = 1AND ( MEM_CLASS IS NULL OR MEM_CLASS = '' OR MEM_CLASS NOT IN (1, 2, 3, 4, 5, 6))AND SCHOOLID = 11839AND enrollment_year = 2016ORDER BY CASEWHEN ifnull(MEM_CLASS, '') = '' THEN 0ELSE 1END DESC, - MEM_CLASS DESC
解读
由于MEM_CLASS 字段被设置成了字符串类型,但我需要按数字从小到大排序,所以MEM_CLASS 前面加个负号“-”,将字符转成数字
下面是重点
其实是个组合排序ORDER BY -- 先按CASE WHEN的结果(ifnull(MEM_CLASS, '') = '' THEN 0 ELSE 1 END)即0和1进行降序排列 CASE WHEN ifnull(MEM_CLASS, '') = '' THEN 0 ELSE 1 END DESC, -- 再按‘- MEM_CLASS’进行降序排列(即数字升序排列) - MEM_CLASS DESC
阅读全文
0 0
- mysql order by case when
- mysql order by case when
- MySQL order by case when 排序
- order by case when
- order by 居然也可以和 case when 连用
- sqlserver使用order by case when进行优先级排序
- order by case when then end指定排序
- sqlserver使用order by case when进行优先级排序
- Oracle 利用order by + case when 实现排序,置顶
- oracle 涉及行转列、复合查询、函数、 HAVING 、order by、group by、count、case when then、 join
- MySQL 使用group by和case when 的两个例子
- oracle case.when group by
- mysql case when
- mysql case when
- mysql case when
- mysql 语句case when
- mysql 语句case when
- mysql 语句case when
- Anbox LXC
- sprintf
- OpenGL 入门教程 模型视图投影矩阵 变换光线
- Nginx简单了解
- PageFlip
- mysql order by case when
- BottomNavigationBar 取代 TabHost的时候早已到来
- SSM框架整合所需相关jra包的maven地址
- unity中XML和JSON文档的解析
- Git使用提交代码遇到『Everything up-to-date』
- Extjs中使用Echarts(自适应)
- 随笔--工作一月
- 小游戏
- leetcode 349[easy]---Intersection of Two Arrays