sql函数
1,将空字段转换为0
isnull(字段名,0)
2,case 。。。when
SELECT a,b,c,
(case d
when 1 then '!'
when 2 then '@'
else '~'
end) t from table;
3,将数据转为字符类型:concat
例:转为百分比
CONCAT(ROUND(0.25145 * 100,2),'%')
4,sql截取字符串
1)、LOCATE(substr , str ):返回子串 substr 在字符串 str 中第一次出现的位置,如果字符substr在字符串str中不存在,则返回0;
2)、POSITION(substr IN str ):返回子串 substr 在字符串 str 中第一次出现的位置,如果字符substr在字符串str中不存在,与LOCATE函数作用相同;
3)、LEFT(str, length):从左边开始截取str,length是截取的长度;
4)、RIGHT(str, length):从右边开始截取str,length是截取的长度;
5)、SUBSTRING_INDEX(str ,substr ,n):返回字符substr在str中第n次出现位置之前的字符串;
6)、SUBSTRING(str ,n ,m):返回字符串str从第n个字符截取到第m个字符
7)、REPLACE(str, n, m):将字符串str中的n字符替换成m字符;
8)、LENGTH(str):计算字符串str的长度
5,判断字符串中包含某个字符
locate(字符,字符串),如果包含,返回>0的数,否则返回0
6,功能:将group by产生的同一个分组中的值连接起来,返回一个字符串结果
语法:group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] )
group_concat: select AA,BB,group_concat(XX) from table a group by AA,BB;
7,reverse()字符串翻转
8,substr()字符串截取
例:substr(reverse(dd.capacity_name),1,1) 截取字符串最后一个字符
9,转换字段类型
Cast(字段名 as 转换的类型 ) 如:cast(aa.arrive_city_code as signed),转换为数字型
10,时间相减函数
timestampdiff(minute,convert(send_date,date),convert(substring_index( comfirm_send_tm, ' ', 1 ),date))
11,concat拼接字符串
concat(a.BARGRAIN_DEPT_CODE,'_',a.BARGRAIN_OBJECT)