在我的表中,我有两个文件,一个是 id 另一个是 strNum 。我想订购 strNum ,如
One
Two
Three
我的表格数据
id strNum
------ ------------
1 Two
2 One
3 Five
4 Nine
我希望在没有任何额外字段添加的情况下获得输出。我怎么能像
一样订购One
Two
Three
Four
Five
答案 0 :(得分:2)
您可以使用Case
:
select strNum
from A
order by case when strNum='one' then 1
when strNum='two' then 2
when strNum='three' then 3
when strNum='four' then 4
when strNum='five' then 5
when strNum='six' then 6
when strNum='seven' then 7
when strNum='eight' then 8
when strNum='nine' then 9
when strNum='ten' then 10 end
您没有提到您正在使用的数据库。这是PostgreSQL版本。 见SQLFiddle
答案 1 :(得分:1)
您可以使用此查询:
SELECT strNum FROM your_table
ORDER BY FIELD(strNum,'One','Two','Three','Four','Five','Six','Seven','Eight','Nine','Ten') ASC
答案 2 :(得分:0)
结帐http://sqlfiddle.com/#!4/6a54c/1
创建一个包含从数字字符串到整数值
的所有映射的表<强> TABLE_MAPING 强>
Value strNum
------ ------------
1 One
2 Two
3 Three
4 Four
.....................
现在使用适当的连接
创建您的查询SELECT m.strNum FROM my_table m
JOIN table_mapping as maping on m.strNum = maping.strNum
ORDER BY maping.value