Vous devriez vraiment soit convertir toutes les données en une unité commune (disons des octets) ou ajouter une colonne qui contient une "unité de mesure" et garder la colonne de taille elle-même numérique.
Cela dit, ce qui suit devrait fonctionner sur les données qui se terminent par Go/Mo/Ko ou 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 |
+-------+------------+