Num*_*our 7 mysql aggregate-functions
如果我想在MySQL中对特定数字列求和,我会这样做
SELECT SUM(MyColumn) FROM MyTable WHERE 1;
Run Code Online (Sandbox Code Playgroud)
这将返回例如数字100.
但我想在总和值前加上一些文字,所以我这样做
SELECT CONCAT('Sum is: ',SUM(MyColumn)) FROM MyTable WHERE 1;
Run Code Online (Sandbox Code Playgroud)
但不是让Sum is: 100我得到类似的东西546573743a20343030.
这是一个错误还是一个功能?我究竟做错了什么?
UPDATE
SELECT CONCAT('Sum is: ',CAST(SUM(MyColumn) AS varchar(20))) FROM MyTable WHERE 1;
Run Code Online (Sandbox Code Playgroud)
转换为varchar不起作用:获取SQL语法错误.
正如FreshPrinceOfSO在下面的评论中提出我的问题,MySQL服务器不处理强制转换varchar.
所以即使查询
SELECT CONCAT('Sum is: ',CAST(SUM(MyColumn) AS varchar(20))) FROM MyTable WHERE 1;
Run Code Online (Sandbox Code Playgroud)
导致语法错误,转换为char工作正常:
SELECT CONCAT('Sum is: ',CAST(SUM(MyColumn) AS char(20))) FROM MyTable WHERE 1;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3712 次 |
| 最近记录: |