आपको वास्तव में या तो सभी डेटा को एक सामान्य इकाई (जैसे बाइट्स) में बदलना चाहिए या एक कॉलम जोड़ना चाहिए जिसमें "माप की इकाई" हो और आकार कॉलम को ही संख्यात्मक रखें।
ऐसा कहने के बाद, निम्नलिखित को जीबी/एमबी/केबी या बी के साथ समाप्त होने वाले डेटा पर काम करना चाहिए।
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 |
+-------+------------+