有一个字段内容是数字和汉字 怎么按照数字的大小排序

有一个字段内容是数字和汉字 如何按照数字的大小排序
字段内容为

KA_ID
1卡
5卡
18卡
20卡

查询的时候直接order by KA_ID 出来的顺序不对啊
------解决思路----------------------

order by to_number(regexp_replace(字段,'[^[:digit:]]+',''))