【发布时间】:2019-08-13 09:03:59
【问题描述】:
保存在我的 SQLite 数据库表中,我有一列以人类友好的形式表示文件大小。例如,大小列中的值可以是 20.5mb 或 350kb 或 900b。我想知道如何使用 order by query 先按大小排序文件大小。
目前,我可以按 tb、gb、mb、kb、b 订购。所以它们的顺序通常是正确的。但是,在按文件大小单位对它们进行排序时,我需要按文件大小完全正确地对它们进行排序。这是我当前的查询
SELECT * FROM filtered
ORDER BY case when size like '%TB%' then 1
when size like '%GB%' then 2
when size like '%MB%' then 3
when size like '%kB%' then 4
when size like '%B%' then 5
else 6
end
返回行的顺序是 90MB、50MB、50.5MB、62KB、135kb。
这里有一些问题。第一个是 50 会在 50.5 之前出现。第二个是因为第一个数字,9 会在 100 之前。
【问题讨论】:
标签: java sql sqlite sql-order-by