背景是这样 有个表字段类型是varchar,需要相加字段的值。
第一次我是这样的
SELECT
ifnull(sum(CONVERT(tons,DECIMAL(18,2))),0) tons
FROM
表 t
问题:字段先拼接然后相加。
结论:也就是说 sum比CONVERT高
第二次 我这样
select sum(tons) from
(SELECT
CONVERT(tons,DECIMAL(18,2))) AS tons
FROM
表 t) AS E
结论:做子查询先转数据类型,然后相加。
第三次 这样。。。。
SELECT
sum(t.tons) tons
FROM
表 t
WHERE
GROUP BY
t.字段
然后tons字段居然正常相加。
-------------------------------------------------------------------------
Ps--所以我没搞懂,这是为啥。
最后我实验了一下
SELECT
sum(t.tons) tons
FROM
表 t 也可以。。。。。。。