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

zzbutcher 2015-01-08 01:57:34
字段内容为

KA_ID
1卡
5卡
18卡
20卡

查询的时候直接order by KA_ID 出来的顺序不对啊
...全文
242 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangcong201301 2015-01-08
  • 打赏
  • 举报
回复
select t.KA_ID from tableName t order by order by to_number(translate(t.KA_ID, '#' || translate(t.KA_ID, '0123456789', '#'), '/'));
bw555 2015-01-08
  • 打赏
  • 举报
回复
order by to_number(substr(KA_ID,1,length(KA_ID)-1))
  • 打赏
  • 举报
回复

order by to_number(regexp_replace(字段,'[^[:digit:]]+',''))
bw555 2015-01-08
  • 打赏
  • 举报
回复
这个是按字符串进行比较的 需要把数据中的数字提取出来,再执行to_number操作,然后再拿去排序,才能按你想要的顺序输出

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧