给定MySql中的CHAR或VARCHAR列,我需要将其转换为一个数字,以便对其求和。例如,如果列名为CHAR1,则SELECT将为:
SELECT SUM(ConvertToNumber(CHAR1)) from TABLE1函数ConvertToNumber只需要转换成一个数字,不管是哪个数字,只要它总是转换成相同的数字即可。
对于本机函数或用户定义的函数,这是否可行?
更新:更清楚地说,CHAR1的值可以是任何字母数字字符串。
发布于 2016-07-14 22:57:38
您可以做的是将列转换为十六进制格式,然后将此结果转换为以10为基数的整数。
SELECT SUM(CONV(HEX(CHAR1), 16, 10)) FROM TABLE1;例如:
INSERT INTO TABLE1 (CHAR1) VALUES ("foo"), ("bar"), ("baz");
/* "int" value for each entry */
SELECT CONV(HEX(CHAR1), 16, 10) FROM TABLE1;
6713199
6447474
6447482
/* sum of the int values */
SELECT SUM(CONV(HEX(CHAR1), 16, 10)) FROM TABLE1
19608155发布于 2016-07-14 22:53:15
SELECT CAST(CHAR1 AS UNSIGNED) FROM TABLE1https://stackoverflow.com/questions/38377250
复制相似问题