数学函数 处理数值数据
取整函数
round(X,D) X表示要处理的数 D表示要保留的小数位数 处理的方式是四舍五入
round(X) 保留0位小数
金额要精确到分 说明保留两位小数
select round(salevalue,2) from demo.transactiondetails where transactionid=1 and itemnum=1;
ceil(X) 向上取整 返回大于等于X的最小int型整数
floor(X) 向下取整 返回小于等于X的最大int型整数
select c.membername,b.transaction,b.transdate,d.goodsname,a.savesvalue,
floor(a.salesvalues) as '积分'
from demo.transactiondetails as a
join demo.transactionhead as b on (a.transactionid=b.transactionid)
join demo.membermaster as c on (b.memberid=c.memberid)
join demo.goodsmaster as d on (a.itemnum=d.itemnum);
绝对值函数
abs(X) 获取X的绝对值
求余函数
mod(X,Y) 获取X被Y除后的余数
字符串函数
在金额前面加上¥符号使用字符串拼接函数
把一组数字以字符串的形式在网上传输,需要用到类型转换函数
字符串拼接
concat(s1,s2,...) 表示字符串s1,s2,...拼接起来 组成一个字符串
比如打印小票 ,要求打印2行,要求打印的整齐漂亮:
第一行是商品信息(商品名称 (商品规格));
第二行是数量 价格 折扣 和 金额4种信息
打印第一行
select concat(goodsname,'(',specification,')') as 商品信息
from demo.goodsmaster where itemnum=1;
打印第二行
类型转换函数
1)先把数量转换为字符串 cast
cast(表达式 as char) 表示将表达式的值转换为字符串
select cast(quantity as char)
from demo.transactiondetails
where transactionid=1 and itemnum=1;
2)计算字符串的长度 char_length
计算字符串的长度
char_length(字符串) 表示获取字符串的长度 (注意若是自己指定的一个特定的字符串,要加引号)
select char_length(cast(quantity as char)) as 长度
from demo.transactiondetails
where transactionid=1 and itemnum=1;
3)使用空格补齐长度(左对齐,先拼接字符串后补齐空格)
获取空格
space(n) 表示获取1个由n个空格组成的字符串
select char_length(cast(quantity as char))
space(7-char_length(cast(quantity as char))) as 数量
from demo.transactiondetails
where transactionid=1 and itemnum=1;
条件判断函数
ifnull(v1,v2) 如果v1的值不为空,就返回v1 否则返回v2 (注意!!!0和null不一样)
如果规格为空(NULL),就不要加规格了 ifnull(specification,'')
select concat(goodsname,'(',ifnull(specification,''),')') as 商品信息
from demo.goodsmaster where itemnum=1;
但是还存在()这样的一对括号
if(表达式,v1,v2) 表达式为真,则返回v1 否则返回v2 这里判断的是是否为真(0和null都为假)
select if(isnull(specification),goodsname,concat(goodsname,'(',specification,')') as 商品信息
from demo.goodsmaster where itemnum=1;