DB2工作中常用sql函数场景与示例整理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qichangjian/article/details/88996630
需求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 '% t e x t < f o n t c o l o r = " b l u e " > < / f o n t > : {text}%'</font> <font color="blue"> 注意</font>: {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

函数-COALESCE()函数处理空值

需求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(字符串,截取开始位置,截取长度) 返回截取的字符串。

猜你喜欢

转载自blog.csdn.net/qichangjian/article/details/88996630