If I want to make a sum of a specific numeric column in MySQL, I do
SELECT SUM(MyColumn) FROM MyTable WHERE 1;
This returns for example number 100.
But I'd like to prepend some text to the sum value, so I do
SELECT CONCAT('Sum is: ',SUM(MyColumn)) FROM MyTable WHERE 1;
but instead of getting Sum is: 100
I get something like 546573743a20343030
.
Is this a bug or a feature? What am I doing wrong?
UPDATE
SELECT CONCAT('Sum is: ',CAST(SUM(MyColumn) AS varchar(20))) FROM MyTable WHERE 1;
Casting to varchar doesn't work: getting SQL syntax error.
MySQL CONCAT() Function The CONCAT() function adds two or more expressions together.
To concatenate more than 2 fields with SQL, you can use CONCAT() or CONCAT_WS() function.
CONCAT function is a SQL string function that provides to concatenate two or more than two character expressions into a single string.
Query: SELECT *, CONCAT(FIRSTNAME, LASTNAME) AS FIRSTNAME FROM demo_table; Output: Here, we can see that FIRSTNAME and LASTNAME is concatenated but there is no space between them, If you want to add space between the FIRSTNAME and LASTNAME then add space(' ') in CONCAT() function.
As FreshPrinceOfSO suggested in the comments below my question, MySQL server doesn't handle casts to varchar
.
So even though the query
SELECT CONCAT('Sum is: ',CAST(SUM(MyColumn) AS varchar(20))) FROM MyTable WHERE 1;
results in syntax error, casting to char
instead works just fine:
SELECT CONCAT('Sum is: ',CAST(SUM(MyColumn) AS char(20))) FROM MyTable WHERE 1;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With