sum函数 如果参数是字符串,结果为何截取了字符比如:
serverid id  value
1        1     1G
1        2    20Msum(case when id=1 then value end),
sum(case when id=2 then value end),结果把后面的单位给去掉了,因为要查 同一个 serverid 下  所有硬盘容量 显示在一条记录中,如何保留后面的单位?

解决方案 »

  1.   

    CONCAT(sum(case when id=1 then value end),RIGHT(value,1)),
    CONCAT(sum(case when id=2 then value end),RIGHT(value,1))
      

  2.   

    -- 求子串:
    mysql> select substring('luoyoumou',1,length('luoyoumou')-1);
    +------------------------------------------------+
    | substring('luoyoumou',1,length('luoyoumou')-1) |
    +------------------------------------------------+
    | luoyoumo                                       |
    +------------------------------------------------+
    1 row in set (0.00 sec)
      

  3.   

    OR
    如果只有G、M
    CONCAT(sum(case when id=1 then value end)*IF(RIGHT(value,1)='G',1024,1),'M'),
    CONCAT(sum(case when id=2 then value end),RIGHT(value,1))