列具有字符串值,例如“ 1/200”,“ 3.5”或“ 6”。如何在单个SQL查询中将此字符串转换为数值?
我的实际SQL更复杂,这是一个简单的示例:
SELECT number_value_in_string FROM table
number_value_in_string的格式为以下之一:
我需要按此列的数值排序。但是,当然postgres与我不同意1/200是正确的数字。
看到你的名字,我不得不张贴一个简化的答案:
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;
忽略可能的除以零。