В C++, существуют три отличны типы символов:
char
signed char
unsigned char
при использовании типов символов для [1 114] текст используйте неполное char
:
'a'
или '0'
. "abcde"
, Это также удается как числовое значение, но это является неуказанным, рассматривают ли то значение, как подписано или неподписанное. Остерегайтесь символьных сравнений через неравенства - хотя при ограничении себя ASCII (0-127) Вы примерно в безопасности.
, Если Вы используете типы символов в качестве [1 115] числа , используйте:
signed char
, который дает Вам [по крайней мере 1 116]-127 к 127 диапазонам. (-128 к 127 распространено) unsigned char
, который дает Вам [по крайней мере 1 117] от 0 до 255 диапазонов. , "По крайней мере", потому что стандарт C++ только дает минимальный диапазон значений, которые каждый числовой тип требуется, чтобы покрывать. sizeof (char)
требуется, чтобы быть 1 (т.е. один байт), но байт мог в теории быть, например, 32 бита. sizeof
все еще был бы отчет его размер как [1 111] - подразумевать, что Вы могли иметь sizeof (char) == sizeof (long) == 1
.
SELECT
hostid,
sum( if( itemname = 'A', itemvalue, 0 ) ) AS A,
sum( if( itemname = 'B', itemvalue, 0 ) ) AS B,
sum( if( itemname = 'C', itemvalue, 0 ) ) AS C
FROM
bob
GROUP BY
hostid;