看到你的名字,我不得不张贴一个简化的答案:
SELECt id, number_value_in_string FROM table ORDER BY CASE WHEN substr(number_value_in_string,1,2) = '1/' THEN 1/substr(number_value_in_string,3)::numeric ELSE number_value_in_string::numeric END, id;
忽略可能的除以零。

看到你的名字,我不得不张贴一个简化的答案:
SELECt id, number_value_in_string FROM table ORDER BY CASE WHEN substr(number_value_in_string,1,2) = '1/' THEN 1/substr(number_value_in_string,3)::numeric ELSE number_value_in_string::numeric END, id;
忽略可能的除以零。