Exposure,Focal和Iso的列未正确排序。似乎它们都被解释为字符串并按此排序。例如,如果我将Exposure排序,则值可能如下所示:
1 / 800,1 / 800,1 / 800,1 / 80,1 / 675,1 / 640,1 / 60,1 / 500
如果我对Focal进行排序,它可能看起来像这样:
1.4,1.4,1.4,14.0,14.0,1.3,13.0,1.2,1.2,12.0,1.0,10.0
如果我按ISO排序,它可能如下所示:
800,800,800,80,80,640,640,60,500,500,50
编辑:My other question(和答案)在一个单独的SQL查询中完成所有这些操作。答案 0 :(得分:2)
我在Oracle上测试了这个
with
w_data AS(
select '1/800' exposure from dual union all
select '1/80' from dual union all
select '1/675' from dual union all
select '1/640' from dual union all
select '1/500' from dual
)
select *
from w_data
order by 1 / to_number(substr(exposure, 3, length(exposure)))
对于焦点,您执行ORDER BY to_number(focal)
,对ISO也是如此。
请注意,曝光示例仅在前2个字符始终为“1 /”时才有效。如果您愿意,我可以将其重写为更常见的情况,例如'2.9 / 700'。