orcal数据库怎么按照指定中文进行排序

比如有4个选项“数学”,“语文”,“政治”,“地理”;
怎么才能按照 数 > 语 > 政 > 地 进行排序?

ORACLE可以借助DECODE函数,自定义顺序排序:
SELECT * FROM (
SELECT '数学' AS ITEM FROM DUAL
UNION ALL
SELECT '语文' AS ITEM FROM DUAL
UNION ALL
SELECT '政治' AS ITEM FROM DUAL
UNION ALL
SELECT '地理' AS ITEM FROM DUAL
) PRE_TAB
ORDER BY DECODE(ITEM, '数学', 1, '语文', 2, '政治', 3, '地理', 4);

你可以给表中添加一列weight:
id name weight
1 语文 300
这时候插入数学,数学优先于语文权重可以设置的大一些
2 数学 800
插入地理,地理优先级小于语文的
3 地理 200
插入政治
政治是在语文和地理之间的
4 政治 250

select name from table order by weight desc

默认没有这种排列,只能看能不能建一个自己的序列了

select * from
table_name
order by decode(col_name,'value1',1,value2',2,valueN',N)

order by instr ('数学,语文,政治,地理')