第1关:数值函数
任务描述
本关任务:对表达式取整
相关知识
四舍五入的函数 ROUND(X,D) 返回X,其值保留到小数点后D位,而第D位的保留方式为四舍五入。 若D的值为0,则对小数部分四舍五入。 若将D设为负值,保留X值小数点左边的D位
TRUNCATE(X,D) 返回被舍去至小数点后D位的数字X。 若D的值为0,则不带有小数部分。 将D设为负数,则截X小数点左起第D位开始后面所有低位的值
任务要求
工作人员gzry数据表如图所示
第一题 显示雇员姓名gyxm和扣费kf(工资gz的0.5%),要求四舍五入到个位。 第二题 显示雇员姓名gyxm和扣费kf(工资的0.5%),要求舍去小数部分(不是四舍五入)
开始你的任务吧,祝你成功!
use sale;
#代码开始
#第一题答案
select gyxm,round(gz*0.05,0) as kf from gzry;
#第二题答案
select gyxm,truncate(gz*0.05,0) as kf from gzry;
#代码结束
第2关:字符串函数一
use sale#代码开始#答案一
select concat(rpad(bm,4," "),rpad(gyxm,4," "),dh) as ygxx from gzry order by bm;#答案二select gyxm,dh from gzry where left(gyxm,1)="王" and char_length(gyxm)=3;#代码结束
第3关:字符串函数二
use sale;
#代码开始
#答案1
SELECT INSERT(name, 2, 0, SPACE(2 * (3 - CHAR_LENGTH(name)))) AS xm FROM gk;#答案2
select name,concat(left(tel,3),"-",mid(tel,4,4),"-",right(tel,4)) as dh from gk;
#答案3
update gk set dept=replace(dept,"新一佳","佳惠");
select name,dept from gk;#代码结束
第4关:日期函数
use sale;
#代码开始
#答案1
select month(xsrq) as yf,sum(sjfk) as sjje from xsd where year(xsrq)=2015 group by month(xsrq);
#第二问
use library;
#答案2
select dzzh,(datediff(hsrq,jyrq)-30)*sj*0.01 as fk from borrow,book where book.txm=borrow.txm and datediff(hsrq,jyrq)>30;#代码结束
第5关:条件函数
use sale;
#代码开始
#答案1
select gyxm,if(gz<2000,50,100) as fy from gzry; #答案2
select gyxm,case bm when "销售部" then 1000 when "办公室" then 800 when "采购部" then 500 else 300 end as jt from gzry;#代码结束