Вы должны либо преобразовать все данные в общую единицу (скажем, в байтах), либо добавить столбец, содержащий «единицу измерения», и оставить столбец размера числовым.
Сказав это, следующие данные должны работать с данными, которые заканчиваются либо ГБ / МБ / КБ, либо B.
select size
from t
order
by case when size like '%GB' then power(1024, 3) * substr(size, 1, length(size) - 2)
when size like '%MB' then power(1024, 2) * substr(size, 1, length(size) - 2)
when size like '%KB' then power(1024, 1) * substr(size, 1, length(size) - 2)
when size like '%B' then substr(size, 1, length(size) - 1)
end desc;
+-------+------------+
| size | bytes |
+-------+------------+
| 1GB | 1073741824 |
| 10MB | 10485760 |
| 100KB | 102400 |
| 1000B | 1000 |
+-------+------------+