需求1
1.项目中经常会遇到order by,但是字段却是varchar类型的,排序就会出现问题,把字段转为int类型的进行排序
order by CAST(rank as int)
补充:CAST是db2或oracle中强制类型转换函数
语法: CAST ( expression AS data_type )
需求2
2.项目要求全省和天府新区的要排在最后面展示
order by case when ( city_id=‘1’ or city_id=’-1’) then 1 else 0 end , cast(city_id as int);
解析:先按照case when得到的o,1结果进行排序,后按照 id进行排序
需求3
3.模糊查询
like '% {text} 是mybaits 传入的值, like ‘%张三%’
需求4
4.项目中可能会遇到如果这个字段没有值,但是想做特殊处理怎么办捏
SELECT coalesce(score,’-0’) FROM SCORE
解释:如果score查询没有值的话,就返回为-0(前台页面就可以做逻辑处理啦~)
补充:COALESCE 函数 :返回列表中的第一个非空表达式(如果所有参数均为 NULL,则返回 NULL),与Oracle数据库的nvl函数功能相同。
语法 :COALESCE ( expression, expression [ , …] )
注意: 也可以使用case when then else end
需求5
5.日期截取,格式转换
select substr(DECIMAL(op_time ),1,6) as op_time from REPORT
注意:op_time 数据库值:2018-08-01 查询出的值:201808 日期格式为 : yyyy-MM-dd
解释:DECIMAL(op_time)查询出的值为: 20180801 日期格式转化为了 :yyyyMMdd
substr (time,1,6) 查询出的值为: 201808
语法:substr(字符串,截取开始位置,截取长度) 返回截取的字符串。