MySQL中字符串拼接:
1、CONCAT_WS()
CONCAT_WS(’-‘,'欧阳','大哥')
指定连接符连接且忽略null
2、GROUP_CONCAT()
GROUP_CONCAT('需合并的列名' SEPARATOR '分隔符')
必须要有分组
数字字符转为数值类型
简单做法:数字字符+0
部分行列转换
有两种思路:case......when......then......end 或者 if
上图转换成下图效果
1、使用case...when....then 进行行转列
SELECT userid, SUM(CASE `subject` WHEN '语文' THEN score ELSE 0 END) as '语文', SUM(CASE `subject` WHEN '数学' THEN score ELSE 0 END) as '数学', SUM(CASE `subject` WHEN '英语' THEN score ELSE 0 END) as '英语', SUM(CASE `subject` WHEN '政治' THEN score ELSE 0 END) as '政治' FROM tb_score GROUP BY userid
2、使用IF() 进行行转列:
SELECT userid, SUM(IF(`subject`='语文',score,0)) as '语文', SUM(IF(`subject`='数学',score,0)) as '数学', SUM(IF(`subject`='英语',score,0)) as '英语', SUM(IF(`subject`='政治',score,0)) as '政治' FROM tb_score GROUP BY userid
数字格式化
1、FORMAT(X,D)
select format(12536.567,2) 保留两位小数,应用千分位
—>12,536.57
select format(12536.567,5) 保留五位小数,不足部分用“0”补足,应用千分位
—>12,536.56700
2、rpad(右))和 lpad(左) 给定位数,不足补充自定义字符
select rpad('xx',4,'?')
—>'xx??'
select rpad(12,4,0)
—>1200
select lpad('xx',4,'?')
—>'??xx'
select lpad(12,4,0)
—>0012