请大神写一个较复杂的SQL select a,b,round(a-b)from tb 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 round方式也是采用的四舍五入,我需要的方式是:小于5就舍去,大于5就入,遇5不舍不入,为原值 round方式也是采用的四舍五入,我需要的方式是:小于5就舍去,大于5就入,遇5不舍不入,为原值如:A - B = 5.6,则C最终为6; 如:A - B = 5.3,测C最终为5; 如:A - B = 5.5,则C最终为5.5; select if(a-b-floor(a-b)>0.5,ceiling(a-b),a-b) from tt 运行该SQL结果:如是>=0.5则进位,如是<0.5则值不变。另送上测试表:DROP TABLE IF EXISTS `tab`;CREATE TABLE `tab` ( `id` bigint(20) NOT NULL, `A` double DEFAULT NULL, `B` double DEFAULT NULL, `C` double DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ------------------------------ Records of tab-- ----------------------------INSERT INTO `tab` VALUES ('1', '8.88', '3.3', '6');INSERT INTO `tab` VALUES ('2', '8.8', '3.5', '5');INSERT INTO `tab` VALUES ('3', '8.8', '3.3', '5.5');其中C列中的值为我想得到的值。非常感谢! 根据 WWWWA 提供的SQL写出了大于和小于的SQL语句,但等于的没写出来,各位帮忙看看SELECT id,IF(A-B-FLOOR(A-B)>0.5,CEILING(A-B),FLOOR(A-B)),C FROM tab 根据 WWWWA 提供的SQL改进已解决SELECT id,IF(ROUND(A-B-FLOOR(A-B),1)=0.5,ROUND(A-B,1),IF(A-B-FLOOR(A-B)>0.5,CEILING(A-B),FLOOR(A-B))) AS C1,C FROM tab谢谢大家的回答 跪求mysql乱码??????????? 多表联查奇慢 LEFT JOIN to_date 时间转换错误 mysql备份的方法通常有那些呢 请教一个SQL语句 弱弱的问一句 MYSQL中两个表互有外键如何插入数据? 我是新手,求一个基础SQL语句的写法 mysql 数据锁定的问题求解....kkkk 请教数据库导入问题 菜鸟求助 MySql查询首次出现在某一天的用户
小于5就舍去,大于5就入,遇5不舍不入,为原值
小于5就舍去,大于5就入,遇5不舍不入,为原值如:A - B = 5.6,则C最终为6;
如:A - B = 5.3,测C最终为5;
如:A - B = 5.5,则C最终为5.5;
另送上测试表:DROP TABLE IF EXISTS `tab`;
CREATE TABLE `tab` (
`id` bigint(20) NOT NULL,
`A` double DEFAULT NULL,
`B` double DEFAULT NULL,
`C` double DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ----------------------------
-- Records of tab
-- ----------------------------
INSERT INTO `tab` VALUES ('1', '8.88', '3.3', '6');
INSERT INTO `tab` VALUES ('2', '8.8', '3.5', '5');
INSERT INTO `tab` VALUES ('3', '8.8', '3.3', '5.5');
其中C列中的值为我想得到的值。
非常感谢!
SELECT id,IF(A-B-FLOOR(A-B)>0.5,CEILING(A-B),FLOOR(A-B)),C FROM tab
SELECT id,IF(ROUND(A-B-FLOOR(A-B),1)=0.5,ROUND(A-B,1),IF(A-B-FLOOR(A-B)>0.5,CEILING(A-B),FLOOR(A-B))) AS C1,C FROM tab
谢谢大家的回答