【发布时间】:2014-02-25 18:49:57
【问题描述】:
如果我想对 MySQL 中的特定数字列求和,我会这样做
SELECT SUM(MyColumn) FROM MyTable WHERE 1;
这会返回例如数字 100。
但我想在总和值前面加上一些文本,所以我这样做了
SELECT CONCAT('Sum is: ',SUM(MyColumn)) FROM MyTable WHERE 1;
但我得到的不是Sum is: 100,而是546573743a20343030。
这是错误还是功能?我做错了什么?
更新
SELECT CONCAT('Sum is: ',CAST(SUM(MyColumn) AS varchar(20))) FROM MyTable WHERE 1;
无法转换为 varchar:出现 SQL 语法错误。
【问题讨论】:
-
似乎对我有用:sqlfiddle.com/#!2/b3a2f/1
MyColumn的类型是什么?您可以使用sqlfiddle.com 来创建此问题的示例吗? -
@FreshPrinceOfSO:没有
CAST也可以正常工作:sqlfiddle.com/#!2/b3a2f/1 -
@NumberFour 使用
char -
啊啊,明白了。字符有效!
-
@NumberFour 显然 MySQL 不接受
varchar作为强制转换类型。另一个很棒的“功能”